summaryrefslogtreecommitdiff
path: root/Assemble.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2010-11-22 20:58:06 +1100
committerNeilBrown <neilb@suse.de>2010-11-22 20:58:06 +1100
commit02c2c474876ed66a016dbeef667e692a69bfec0d (patch)
tree3e8310e34edb32e88dea9b4929c97d6da8620654 /Assemble.c
parentd76c4d889427a04a9d901152cf5cd902071ea6be (diff)
Assemble: simplify the handling of is_member_busy.
This is somewhat inconsistent with the last member of a container getting special handling. Just simplify it so the code seems to make sense and important is easy to follow. Signed-of-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Assemble.c')
-rw-r--r--Assemble.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/Assemble.c b/Assemble.c
index fce8d344..771cb77c 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -420,26 +420,14 @@ int Assemble(struct supertype *st, char *mddev,
report_missmatch ? devname : NULL)) {
content = content->next;
goto next_member;
- }
-
- /* we have the one container we need, don't keep
- * looking. If the chosen member is active, skip.
- */
- if (is_member_busy(content->text_version)) {
+ } else if (is_member_busy(content->text_version)) {
if (report_missmatch)
fprintf(stderr, Name ": member %s in %s is already assembled\n",
content->text_version,
devname);
content = content->next;
- if (content)
- goto next_member;
- tst->ss->free_super(tst);
- tst = NULL;
- if (auto_assem)
- goto loop;
- dev_policy_free(pol);
- return 1;
+ goto next_member;
}
st = tst; tst = NULL;
if (!auto_assem && inargv && tmpdev->next != NULL) {