summaryrefslogtreecommitdiffstats
path: root/Assemble.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2009-04-07 17:45:42 +1000
committerNeilBrown <neilb@suse.de>2009-04-07 17:45:42 +1000
commit8b4e5ea926a081d870af85fe5d304bcac48d9f57 (patch)
treefcab598a78f6e30f889711cc40296f4be9b39c1e /Assemble.c
parentc0d50ca58423168f2b86ba674227a9bbc33e1501 (diff)
downloadmdadm-8b4e5ea926a081d870af85fe5d304bcac48d9f57.tar.gz
mdadm-8b4e5ea926a081d870af85fe5d304bcac48d9f57.tar.xz
mdadm-8b4e5ea926a081d870af85fe5d304bcac48d9f57.zip
Assemble: call map_update even when not starting the array.
For incremental assembly to work, we need to keep the 'map' up-to-date even when not starting the array yet. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Assemble.c')
-rw-r--r--Assemble.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/Assemble.c b/Assemble.c
index 172bc53..73d6ee2 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -1235,13 +1235,16 @@ int assemble_container_content(struct supertype *st, int mdfd,
if (working == 0) {
close(mdfd);
return 1;/* Nothing new, don't try to start */
- } else if (runstop > 0 ||
+ }
+
+ map_update(&map, fd2devnum(mdfd),
+ content->text_version,
+ content->uuid, chosen_name);
+
+ if (runstop > 0 ||
(working + preexist) >= content->array.working_disks) {
int err;
- map_update(&map, fd2devnum(mdfd),
- content->text_version,
- content->uuid, chosen_name);
switch(content->array.level) {
case LEVEL_LINEAR:
case LEVEL_MULTIPATH: