Grow: don't let analyse_change see new level from metadata.

This is a bit of a hack - probably analyse change needs to be
re-written a bit to handle this properly.

However when the metadata deduced the intermediate state for a
reshaping array, the 'new_level' it sets should not be used to
interpret the 'delta_disks' number.
So in that case, hide the new_level while calling analyse_change.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2011-03-09 18:53:09 +11:00
parent eff4954d9a
commit 3cb2aed250
1 changed files with 7 additions and 1 deletions

8
Grow.c
View File

@ -1649,7 +1649,13 @@ static int reshape_array(char *container, int fd, char *devname,
int done;
struct mdinfo *sra = NULL;
msg = analyse_change(info, &reshape);
if (info->reshape_active) {
int new_level = info->new_level;
info->new_level = UnSet;
msg = analyse_change(info, &reshape);
info->new_level = new_level;
} else
msg = analyse_change(info, &reshape);
if (msg) {
fprintf(stderr, Name ": %s\n", msg);
goto release;