From: NeilBrown Date: Thu, 22 Mar 2012 06:00:57 +0000 (+1100) Subject: Grow: print useful error when converting RAID1->RAID5 will fail. X-Git-Tag: mdadm-3.2.4~47 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5ca3a902fd576426c891ec3c20d1edd65d917c5d;p=thirdparty%2Fmdadm.git 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 --- diff --git a/Grow.c b/Grow.c index a0dbb205..e3ef8d43 100644 --- a/Grow.c +++ b/Grow.c @@ -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)