Fix tests on ->container and ->member
For container= and member= to be effective in an mdadm.conf line they must both be present. So when checking for their absence we need container != NULL || member != NULL. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
061f2c6abd
commit
aa7c284c06
|
@ -140,7 +140,7 @@ int Assemble(struct supertype *st, char *mddev,
|
|||
int clean;
|
||||
int auto_assem = (mddev == NULL && !ident->uuid_set &&
|
||||
ident->super_minor == UnSet && ident->name[0] == 0
|
||||
&& ident->container == NULL && ident->member == NULL);
|
||||
&& (ident->container == NULL || ident->member == NULL));
|
||||
int old_linux = 0;
|
||||
int vers = vers; /* Keep gcc quite - it really is initialised */
|
||||
struct {
|
||||
|
@ -504,7 +504,7 @@ int Assemble(struct supertype *st, char *mddev,
|
|||
break;
|
||||
}
|
||||
if (!auto_assem && trustworthy == FOREIGN)
|
||||
/* If the array is listed in mdadm or on
|
||||
/* If the array is listed in mdadm.conf or on
|
||||
* command line, then we trust the name
|
||||
* even if the array doesn't look local
|
||||
*/
|
||||
|
|
2
config.c
2
config.c
|
@ -567,7 +567,7 @@ void arrayline(char *line)
|
|||
}
|
||||
if (mis.uuid_set == 0 && mis.devices == NULL &&
|
||||
mis.super_minor == UnSet && mis.name[0] == 0 &&
|
||||
(mis.container == NULL && mis.member == NULL))
|
||||
(mis.container == NULL || mis.member == NULL))
|
||||
fprintf(stderr, Name ": ARRAY line %s has no identity information.\n", mis.devname);
|
||||
else {
|
||||
mi = malloc(sizeof(*mi));
|
||||
|
|
Loading…
Reference in New Issue