From 7943e93ce24cece9685b76337d09c607a8bc7334 Mon Sep 17 00:00:00 2001 From: majianpeng Date: Tue, 22 May 2012 13:55:03 +1000 Subject: [PATCH] --- yaml --- r: 305932 b: refs/heads/master c: da8840a747c0dbf49506ec906757a6b87b9741e9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/md/raid1.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ad8e9be0ffc3..3e69ffe2aa29 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4fa2f327681808f653711e14203a42cf4644bda0 +refs/heads/master: da8840a747c0dbf49506ec906757a6b87b9741e9 diff --git a/trunk/drivers/md/raid1.c b/trunk/drivers/md/raid1.c index 71a7dc038a82..22cfc6660b18 100644 --- a/trunk/drivers/md/raid1.c +++ b/trunk/drivers/md/raid1.c @@ -1859,7 +1859,9 @@ static void fix_read_error(struct r1conf *conf, int read_disk, rdev = conf->mirrors[d].rdev; if (rdev && - test_bit(In_sync, &rdev->flags) && + (test_bit(In_sync, &rdev->flags) || + (!test_bit(Faulty, &rdev->flags) && + rdev->recovery_offset >= sect + s)) && is_badblock(rdev, sect, s, &first_bad, &bad_sectors) == 0 && sync_page_io(rdev, sect, s<<9,