+++ /dev/null
-From 4044ba58dd15cb01797c4fd034f39ef4a75f7cc3 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb@suse.de>
-Date: Fri, 9 Jan 2009 08:31:11 +1100
-Subject: [PATCH] md: don't retry recovery of raid1 that fails due to error on source drive.
-
-If a raid1 has only one working drive and it has a sector which
-gives an error on read, then an attempt to recover onto a spare will
-fail, but as the single remaining drive is not removed from the
-array, the recovery will be immediately re-attempted, resulting
-in an infinite recovery loop.
-
-So detect this situation and don't retry recovery once an error
-on the lone remaining drive is detected.
-
-Allow recovery to be retried once every time a spare is added
-in case the problem wasn't actually a media error.
-
-Signed-off-by: NeilBrown <neilb@suse.de>
----
- drivers/md/md.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- linux-2.6.27-SLE11_BRANCH.orig/drivers/md/md.c
-+++ linux-2.6.27-SLE11_BRANCH/drivers/md/md.c
-@@ -1512,6 +1512,9 @@ static int bind_rdev_to_array(mdk_rdev_t
- list_add_rcu(&rdev->same_set, &mddev->disks);
- bd_claim_by_disk(rdev->bdev, rdev->bdev->bd_holder, mddev->gendisk);
- md_integrity_check(rdev, mddev);
-+
-+ /* May as well allow recovery to be retried once */
-+ clear_bit(MD_RECOVERY_DISABLED, &mddev->recovery);
- return 0;
-
- fail: