From d1fac196c92528cfc90a4e15946e23993478e939 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Wed, 9 Nov 2011 11:32:09 +1100 Subject: [PATCH] md/raid5: Mark device replaceable when we see a write error. Now that Replaceable drives are replaced cleanly, mark a drive as replaceable when we see a write error. It might get failed soon so the Replaceable flag is irrelevant, but if the write error is recorded in the bad block log, we still want to activate any spare that might be available. Signed-off-by: NeilBrown --- drivers/md/raid5.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 78d3115e5770..ea6dce9db10d 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -1784,6 +1784,9 @@ static void raid5_end_write_request(struct bio *bi, int error) if (!uptodate) { set_bit(WriteErrorSeen, &rdev->flags); set_bit(R5_WriteError, &sh->dev[i].flags); + if (!test_and_set_bit(Replaceable, &rdev->flags)) + set_bit(MD_RECOVERY_NEEDED, + &rdev->mddev->recovery); } else if (is_badblock(rdev, sh->sector, STRIPE_SECTORS, &first_bad, &bad_sectors)) -- 2.39.5