• Jiri Kosina's avatar
    floppy: do not corrupt bio.bi_flags when reading block 0 · 6314a108
    Jiri Kosina authored
    Commit 41a55b4d ("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 7b7b68bb ("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: default avatarTakashi Iwai <tiwai@suse.de>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    6314a108
floppy.c 118 KB