diff options
| author | Xiao Ni <[email protected]> | 2019-07-08 02:14:32 +0000 |
|---|---|---|
| committer | Song Liu <[email protected]> | 2019-08-07 17:25:02 +0000 |
| commit | 143f6e733b73051cd22dcb80951c6c929da413ce (patch) | |
| tree | f146c340dd0bb7bfa465ebaede8ef9d3b1248cf7 /drivers/md/raid1.c | |
| parent | raid1: use an int as the return value of raise_barrier() (diff) | |
| download | kernel-143f6e733b73051cd22dcb80951c6c929da413ce.tar.gz kernel-143f6e733b73051cd22dcb80951c6c929da413ce.zip | |
md/raid6: Set R5_ReadError when there is read failure on parity disk
7471fb77ce4d ("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 <[email protected]>
Fixes: 7471fb77ce4d ("md/raid6: Fix anomily when recovering a single device in RAID6.")
Cc: <[email protected]> #4.4+
Signed-off-by: Xiao Ni <[email protected]>
Signed-off-by: Song Liu <[email protected]>
Diffstat (limited to 'drivers/md/raid1.c')
0 files changed, 0 insertions, 0 deletions
