diff options
author | NeilBrown <neilb@suse.de> | 2010-11-22 20:58:05 +1100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2010-11-22 20:58:05 +1100 |
commit | 805d30b2886903d668dc306431e15d9d168f77ed (patch) | |
tree | 05c39084fcc030b2945cce7aa4ceaf625a7b1040 /Assemble.c | |
parent | fa0312397e105afee9c61d2b9c016b3fe6a1178f (diff) |
Assemble: merge 'member' test into ident_matches.
This is a more sensible place for it, gathering all the tests
together.
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'Assemble.c')
-rw-r--r-- | Assemble.c | 37 |
1 files changed, 15 insertions, 22 deletions
@@ -112,6 +112,21 @@ static int ident_matches(struct mddev_ident *ident, devname); return 0; } + if (ident->member && ident->member[0]) { + /* content->text_version must match */ + char *s = strchr(content->text_version+1, '/'); + if (s == NULL) { + if (devname) + fprintf(stderr, Name ": %s is not a container and one is required.\n", + devname); + return 0; + } else if (strcmp(ident->member, s+1) != 0) { + if (devname) + fprintf(stderr, Name ": skipping wrong member %s is %s\n", + content->text_version, devname); + return 0; + } + } return 1; } @@ -417,19 +432,6 @@ int Assemble(struct supertype *st, char *mddev, content->text_version, devname); skip = 1; - } else if (ident->member && ident->member[0]) { - char *s = strchr(content->text_version+1, '/'); - if (s == NULL) { - fprintf(stderr, Name ": badly formatted version: %s\n", - content->text_version); - skip = 1; - } else if (strcmp(ident->member, s+1) != 0) { - if (report_missmatch) - fprintf(stderr, - Name ": skipping wrong member %s\n", - content->text_version); - skip = 1; - } } if (skip) { content = content->next; @@ -457,15 +459,6 @@ int Assemble(struct supertype *st, char *mddev, 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)) |