|
@@ -2056,6 +2056,9 @@ static void raid5_end_read_request(struct bio * bi, int error)
|
|
mdname(conf->mddev), bdn);
|
|
mdname(conf->mddev), bdn);
|
|
else
|
|
else
|
|
retry = 1;
|
|
retry = 1;
|
|
|
|
+ if (set_bad && test_bit(In_sync, &rdev->flags)
|
|
|
|
+ && !test_bit(R5_ReadNoMerge, &sh->dev[i].flags))
|
|
|
|
+ retry = 1;
|
|
if (retry)
|
|
if (retry)
|
|
if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags)) {
|
|
if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags)) {
|
|
set_bit(R5_ReadError, &sh->dev[i].flags);
|
|
set_bit(R5_ReadError, &sh->dev[i].flags);
|