• NeilBrown's avatar
    md/raid1: restore ability for check and repair to fix read errors. · 9f2d2899
    NeilBrown authored
    commit 1877db75589a895bbdc4c4c3f23558e57b521141 upstream.
    
    commit 30bc9b53878a9921b02e3b5bc4283ac1c6de102a
        md/raid1: fix bio handling problems in process_checks()
    
    Move the bio_reset() to a point before where BIO_UPTODATE is checked,
    so that check now always report that the bio is uptodate, even if it is not.
    
    This causes process_check() to sometimes treat read-errors as
    successful matches so the good data isn't written out.
    
    This patch preserves the flag until it is needed.
    
    Bug was introduced in 3.11, but backported to 3.10-stable (as it fixed
    an even worse bug).  So suitable for any -stable since 3.10.
    Reported-and-tested-by: default avatarMichael Tokarev <mjt@tls.msk.ru>
    Fixed: 30bc9b53878a9921b02e3b5bc4283ac1c6de102a
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    9f2d2899
raid1.c 83.2 KB