diff options
author | NeilBrown <neilb@suse.de> | 2011-01-14 09:14:34 +1100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-17 15:14:54 -0800 |
commit | 9d175349c07facee9bb494c8f8b6ecfea952710d (patch) | |
tree | 5c894289b8d20564dad81272c3397d2cfc9b1c6f /drivers/md/md.c | |
parent | 2758704d68d5676c91b5f42c7d4c8d1f572434ff (diff) |
md: Fix removal of extra drives when converting RAID6 to RAID5
commit bf2cb0dab8c97f00a71875d9b13dbac17a2f47ca upstream.
When a RAID6 is converted to a RAID5, the extra drive should
be discarded. However it isn't due to a typo in a comparison.
This bug was introduced in commit e93f68a1fc6 in 2.6.35-rc4
and is suitable for any -stable since than.
As the extra drive is not removed, the 'degraded' counter is wrong and
so the RAID5 will not respond correctly to a subsequent failure.
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c index 540347c538f..ad33bc5b76a 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -3117,7 +3117,7 @@ level_store(mddev_t *mddev, const char *buf, size_t len) char nm[20]; if (rdev->raid_disk < 0) continue; - if (rdev->new_raid_disk > mddev->raid_disks) + if (rdev->new_raid_disk >= mddev->raid_disks) rdev->new_raid_disk = -1; if (rdev->new_raid_disk == rdev->raid_disk) continue; |