From 1415fe4b6c766caa5a3e57a15cac4a3ac395c543 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 22 Nov 2010 20:58:05 +1100 Subject: Assemble: contract next_member loop. We have a 'goto next_member' loop which is rather spread-out and confusing. Recent refactoring make it possible to contract that loop significantly. Signed-off-by: NeilBrown --- Assemble.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'Assemble.c') diff --git a/Assemble.c b/Assemble.c index 197ae1ea..b3a214a7 100644 --- a/Assemble.c +++ b/Assemble.c @@ -390,11 +390,12 @@ int Assemble(struct supertype *st, char *mddev, if (verbose > 0) fprintf(stderr, Name ": looking in container %s\n", devname); + + tmpdev->content = tst->ss->container_content(tst, NULL); next_member: if (tmpdev->content) content = tmpdev->content; - else - content = tst->ss->container_content(tst, NULL); + if (!content) goto loop; /* empty container */ @@ -405,7 +406,7 @@ int Assemble(struct supertype *st, char *mddev, if (!ident_matches(ident, content, tst, homehost, update, report_missmatch ? devname : NULL)) - goto loop; + goto next_member; /* we have the one container we need, don't keep * looking. If the chosen member is active, skip. @@ -521,8 +522,6 @@ int Assemble(struct supertype *st, char *mddev, loop: dev_policy_free(pol); pol = NULL; - if (tmpdev->content) - goto next_member; if (tst) tst->ss->free_super(tst); } -- cgit v1.2.3