summaryrefslogtreecommitdiff
path: root/Assemble.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2010-11-22 20:58:05 +1100
committerNeilBrown <neilb@suse.de>2010-11-22 20:58:05 +1100
commitbac0d92e931259a2d41be1b9fe779d39d5d011b7 (patch)
tree7047ca75e8bc4abbc55371d85bc2ea93c353d21e /Assemble.c
parenta655e5506478c540db06649fe7833c3c0982f80c (diff)
Assemble: merge to large 'if' statements.
In assemble, we see (inside a 'for' loop): if (condition) { lots of stuff } else something small thing if (same condition) { lots more stuff break; } where 'condition' cannot be changed in the middle. So simplify this to if (condition) { lots of stuff small thing lots more stuff break; } something small thing which duplicates the small thing, but provides much conceptual simplicity. Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Assemble.c')
-rw-r--r--Assemble.c34
1 files changed, 19 insertions, 15 deletions
diff --git a/Assemble.c b/Assemble.c
index 6ba78a86..197ae1ea 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -402,22 +402,11 @@ int Assemble(struct supertype *st, char *mddev,
if (tmpdev->content == NULL)
tmpdev->used = 2;
- } else if (ident->container || ident->member) {
- /* No chance of this matching if we don't have
- * a container */
- if (report_missmatch)
- fprintf(stderr, Name "%s is not a container, and one is required.\n",
- devname);
- goto loop;
- }
-
- if (!ident_matches(ident, content, tst,
- homehost, update,
- report_missmatch ? devname : NULL))
- goto loop;
+ if (!ident_matches(ident, content, tst,
+ homehost, update,
+ report_missmatch ? devname : NULL))
+ goto loop;
- if (tst->ss->container_content
- && tst->loaded_container) {
/* we have the one container we need, don't keep
* looking. If the chosen member is active, skip.
*/
@@ -466,6 +455,21 @@ int Assemble(struct supertype *st, char *mddev,
content->text_version, devname);
break;
}
+
+ if (ident->container || ident->member) {
+ /* No chance of this matching if we don't have
+ * a container */
+ if (report_missmatch)
+ fprintf(stderr, Name "%s is not a container, and one is required.\n",
+ devname);
+ goto loop;
+ }
+
+ if (!ident_matches(ident, content, tst,
+ homehost, update,
+ report_missmatch ? devname : NULL))
+ goto loop;
+
if (st == NULL)
st = dup_super(tst);
if (st->minor_version == -1)