]> git.baikalelectronics.ru Git - kernel.git/commit
floppy: do not corrupt bio.bi_flags when reading block 0
authorJiri Kosina <jkosina@suse.cz>
Wed, 28 May 2014 09:55:23 +0000 (11:55 +0200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 28 May 2014 12:56:52 +0000 (14:56 +0200)
commit4a2015811a1fe420553a6f4aebcfd849fe37619a
tree1d5431f1eafa04a0eb13efb551b94fb5c037ee86
parent056d95d35ad1b383be59d9762fbd56c6c415f33f
floppy: do not corrupt bio.bi_flags when reading block 0

Commit e0008fff130 ("floppy: silence warning during disk test") caused
bio.bi_flags being overwritten, and its initialization to BIO_UPTODATE
in bio_init() to be lost.

This was unnoticed until a958ff9438 ("floppy: bail out in open() if
drive is not responding to block0 read"), because the error value wasn't
checked for in the bio completion callback.

Now we are actually looking at the error, and the loss of BIO_UPTODATE
causes EIO to be wrongly passed to the callback, which confuses the
FD_OPEN_SHOULD_FAIL_BIT logic.

Fix this by not destroying previous value of bi_flags when setting
BIO_QUIET.

Cc: Stephen Hemminger <shemminger@vyatta.com>
Reported-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/block/floppy.c