From: Gabriele A. Trombetti Date: Wed, 28 Apr 2010 01:51:17 +0000 (+1000) Subject: md/raid6: Fix raid-6 read-error correction in degraded state X-Git-Tag: firefly_0821_release~10186^2~1635 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=c38090e259e2311c1a8bfac4dbc60bbdb70f4f08;p=firefly-linux-kernel-4.4.55.git md/raid6: Fix raid-6 read-error correction in degraded state commit 87aa63000c484bfb9909989316f615240dfee018 upstream. Fix: Raid-6 was not trying to correct a read-error when in singly-degraded state and was instead dropping one more device, going to doubly-degraded state. This patch fixes this behaviour. Tested-by: Janos Haar Signed-off-by: Gabriele A. Trombetti Reported-by: Janos Haar Signed-off-by: NeilBrown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 7d4f0e63f028..23949739fc25 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -1526,7 +1526,7 @@ static void raid5_end_read_request(struct bio * bi, int error) clear_bit(R5_UPTODATE, &sh->dev[i].flags); atomic_inc(&rdev->read_errors); - if (conf->mddev->degraded) + if (conf->mddev->degraded >= conf->max_degraded) printk_rl(KERN_WARNING "raid5:%s: read error not correctable " "(sector %llu on %s).\n",