diff options
author | NeilBrown <neilb@suse.de> | 2011-10-31 12:59:44 +1100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-11-11 09:43:29 -0800 |
commit | 908accb6a475037a826cc151609c575415aa7e89 (patch) | |
tree | 57bfafc2dfd9c3a01ce37b79d4ea7a81801eafdf /drivers/md | |
parent | 9d6af07ac7e925a9a7dcb46d6b25021112b203e1 (diff) |
md/raid10: Fix bug when activating a hot-spare.
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>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/raid10.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 0cd9672cf9c..1d44228530a 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -1337,7 +1337,7 @@ static int raid10_add_disk(mddev_t *mddev, mdk_rdev_t *rdev) 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, |