提交 bf2cb0da 编写于 作者: N NeilBrown

md: Fix removal of extra drives when converting RAID6 to RAID5

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 e93f68a1 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.

Cc: stable@kernel.org
Signed-off-by: NNeilBrown <neilb@suse.de>
上级 ba1b41b6
...@@ -3126,7 +3126,7 @@ level_store(mddev_t *mddev, const char *buf, size_t len) ...@@ -3126,7 +3126,7 @@ level_store(mddev_t *mddev, const char *buf, size_t len)
char nm[20]; char nm[20];
if (rdev->raid_disk < 0) if (rdev->raid_disk < 0)
continue; continue;
if (rdev->new_raid_disk > mddev->raid_disks) if (rdev->new_raid_disk >= mddev->raid_disks)
rdev->new_raid_disk = -1; rdev->new_raid_disk = -1;
if (rdev->new_raid_disk == rdev->raid_disk) if (rdev->new_raid_disk == rdev->raid_disk)
continue; continue;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册