diff options
author | NeilBrown <neilb@suse.de> | 2014-05-22 14:22:58 +1000 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2014-05-22 14:22:58 +1000 |
commit | 06e293d0970e36b1ed049b9d3ccb21a870e9d2eb (patch) | |
tree | 4c02a0185af565fdabd73d23791f0a4e23fab812 /Assemble.c | |
parent | 2ecda5a3fa0382c615aebe11111c671357137378 (diff) |
Grow: fix resent grow_continue breakage.
Commit 5e76dce1acd906e8fc8af04973c3a129cdc77fd6 changed
Grow_continue to assume a fork had already happened, so that
mdadm --grow --continue
didn't fork. This is good, but it means that if Grow_continue
is run from Assemble, then
mdadm --assemble ....
can misbehave if the array was in the middle of a reshape.
So introduce finer control. Grow_continue only assumes it has
already forked if run from "mdadm --grow --continue".
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Assemble.c')
-rw-r--r-- | Assemble.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1044,7 +1044,7 @@ static int start_array(int mdfd, "array_state", "readonly"); if (rv == 0) rv = Grow_continue(mdfd, st, content, - c->backup_file, + c->backup_file, 0, c->freeze_reshape); } else if (c->readonly && sysfs_attribute_available( @@ -1912,7 +1912,7 @@ int assemble_container_content(struct supertype *st, int mdfd, } err = Grow_continue(mdfd, st, content, c->backup_file, - c->freeze_reshape); + 0, c->freeze_reshape); } else switch(content->array.level) { case LEVEL_LINEAR: case LEVEL_MULTIPATH: |