From 0a8b92a6f630e8f517ed570a2bfeabba74478fa5 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 13 Aug 2012 08:00:18 +1000 Subject: [PATCH] Fix default size calculations that were recently broken. commit d04f65f48c93e7e57cc3c1d70dd07d094dece717 Change the values for "max size" from -1 to 1. Messed up 's->size' - leaving it as '1' (MAX_SIZE) in some cases and causing the array reshape to fail. Signed-off-by: NeilBrown --- Build.c | 4 +++- Grow.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Build.c b/Build.c index e3f7fb2a..ea55e5b5 100644 --- a/Build.c +++ b/Build.c @@ -124,7 +124,9 @@ int Build(char *mddev, struct mddev_dev *devlist, if (vers >= 9000) { mdu_array_info_t array; array.level = s->level; - array.size = s->size == MAX_SIZE ? 0 : s->size; + if (s->size == MAX_SIZE) + s->size = 0; + array.size = s->size; array.nr_disks = s->raiddisks; array.raid_disks = s->raiddisks; array.md_minor = 0; diff --git a/Grow.c b/Grow.c index d13b7f3b..ea86f7bb 100644 --- a/Grow.c +++ b/Grow.c @@ -1716,7 +1716,9 @@ int Grow_reshape(char *devname, int fd, st->update_tail = &st->updates; } - array.size = s->size == MAX_SIZE ? 0 : s->size; + if (s->size == MAX_SIZE) + s->size = 0; + array.size = s->size; if ((unsigned)array.size != s->size) { /* got truncated to 32bit, write to * component_size instead -- 2.47.2