From eff4954d9a3e067bf495f7ee1bbe957879b732b4 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Wed, 9 Mar 2011 18:50:59 +1100 Subject: [PATCH] Grow: don't try to use 'raid_disks' value for a container. The 'raid_disks' for a container is zero, so subtracting it from the given raid_disks to get delta_disks doesn't make sense. Rather set delta_disks to UnSet and set raid_disks to the requested number of disks. This then gets passed to reshape_super() which can use it as required. Signed-off-by: NeilBrown --- Grow.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Grow.c b/Grow.c index 32263b0d..e9327226 100644 --- a/Grow.c +++ b/Grow.c @@ -1506,7 +1506,10 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file, info.component_size = size*2; info.new_level = level; info.new_chunk = chunksize * 1024; - if (raid_disks) + if (info.array.level == LEVEL_CONTAINER) { + info.delta_disks = UnSet; + info.array.raid_disks = raid_disks; + } else if (raid_disks) info.delta_disks = raid_disks - info.array.raid_disks; else info.delta_disks = UnSet; -- 2.39.2