• X
    md/raid6: Set R5_ReadError when there is read failure on parity disk · e8323e0d
    Xiao Ni 提交于
    commit 143f6e733b73051cd22dcb80951c6c929da413ce upstream.
    
    7471fb77 ("md/raid6: Fix anomily when recovering a single device in
    RAID6.") avoids rereading P when it can be computed from other members.
    However, this misses the chance to re-write the right data to P. This
    patch sets R5_ReadError if the re-read fails.
    
    Also, when re-read is skipped, we also missed the chance to reset
    rdev->read_errors to 0. It can fail the disk when there are many read
    errors on P member disk (other disks don't have read error)
    
    V2: upper layer read request don't read parity/Q data. So there is no
    need to consider such situation.
    
    This is Reported-by: kbuild test robot <lkp@intel.com>
    
    Fixes: 7471fb77 ("md/raid6: Fix anomily when recovering a single device in RAID6.")
    Cc: <stable@vger.kernel.org> #4.4+
    Signed-off-by: NXiao Ni <xni@redhat.com>
    Signed-off-by: NSong Liu <songliubraving@fb.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    e8323e0d
raid5.c 239.9 KB