summaryrefslogtreecommitdiff
path: root/Assemble.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2014-05-22 14:22:58 +1000
committerNeilBrown <neilb@suse.de>2014-05-22 14:22:58 +1000
commit06e293d0970e36b1ed049b9d3ccb21a870e9d2eb (patch)
tree4c02a0185af565fdabd73d23791f0a4e23fab812 /Assemble.c
parent2ecda5a3fa0382c615aebe11111c671357137378 (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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Assemble.c b/Assemble.c
index 89779285..a57d384d 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -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: