|
|
@@ -2573,7 +2573,9 @@ static void raid5_end_read_request(struct bio * bi)
|
|
|
&& !test_bit(R5_ReadNoMerge, &sh->dev[i].flags))
|
|
|
retry = 1;
|
|
|
if (retry)
|
|
|
- if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags)) {
|
|
|
+ if (sh->qd_idx >= 0 && sh->pd_idx == i)
|
|
|
+ set_bit(R5_ReadError, &sh->dev[i].flags);
|
|
|
+ else if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags)) {
|
|
|
set_bit(R5_ReadError, &sh->dev[i].flags);
|
|
|
clear_bit(R5_ReadNoMerge, &sh->dev[i].flags);
|
|
|
} else
|