Grow: print useful error when converting RAID1->RAID5 will fail.

RAID1 can only be converted to RAID0 or RAID5 if the size is
a multiple of 4K as we cannot have chunks smaller than 4K.

If this might happen, report a useful error message.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2012-03-22 17:00:57 +11:00
parent ae6c05ad83
commit 5ca3a902fd
1 changed files with 4 additions and 0 deletions

4
Grow.c
View File

@ -1023,6 +1023,10 @@ char *analyse_change(struct mdinfo *info, struct reshape *re)
* raid5 with 2 disks, or
* raid0 with 1 disk
*/
if (info->new_level > 1 &&
(info->component_size & 7))
return "Cannot convert RAID1 of this size - "
"reduce size to multiple of 4K first.";
if (info->new_level == 0) {
if (info->delta_disks != UnSet &&
info->delta_disks != 0)