summaryrefslogtreecommitdiff
path: root/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <andre@pc-01.localdomain>2012-03-12 01:16:00 -0300
committerAndré Fabian Silva Delgado <andre@pc-01.localdomain>2012-03-12 01:16:00 -0300
commit0898dcbc181487ce82934f9f900b2a1772fd2da0 (patch)
treef3ae46a77fa698eac4f8786beff116e49132e1b2 /kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch
parent27c545ae9d8f8876469bed2eb8d11fdd6455992f (diff)
kernels/linux-libre-aufs_friendly
Diffstat (limited to 'kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch')
-rw-r--r--kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch b/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch
new file mode 100644
index 000000000..880849db5
--- /dev/null
+++ b/kernels/linux-libre-aufs_friendly/md-raid10-fix-bug-when-activating-a-hot-spare.patch
@@ -0,0 +1,40 @@
+From 7fcc7c8acf0fba44d19a713207af7e58267c1179 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Mon, 31 Oct 2011 12:59:44 +1100
+Subject: md/raid10: Fix bug when activating a hot-spare.
+
+From: NeilBrown <neilb@suse.de>
+
+commit 7fcc7c8acf0fba44d19a713207af7e58267c1179 upstream.
+
+This is a fairly serious bug in RAID10.
+
+When a RAID10 array is degraded and a hot-spare is activated, the
+spare does not take up the empty slot, but rather replaces the first
+working device.
+This is likely to make the array non-functional. It would normally
+be possible to recover the data, but that would need care and is not
+guaranteed.
+
+This bug was introduced in commit
+ 2bb77736ae5dca0a189829fbb7379d43364a9dac
+which first appeared in 3.1.
+
+Signed-off-by: NeilBrown <neilb@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/md/raid10.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/md/raid10.c
++++ b/drivers/md/raid10.c
+@@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mdde
+ mirror_info_t *p = &conf->mirrors[mirror];
+ if (p->recovery_disabled == mddev->recovery_disabled)
+ continue;
+- if (!p->rdev)
++ if (p->rdev)
+ continue;
+
+ disk_stack_limits(mddev->gendisk, rdev->bdev,