Be more consistent about keeping the host: prefix on array names.
If an array name contains a "hostname:" prefix, then --assemble will tend to leave it there, while --incremental will strip it off (when chosing a device name during auto-assembly). Make this more consistent: strip the name off if we decide that the name will be treated as 'local'. Leave it on if it will be treated as 'foreign'. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
5c4c9ab16d
commit
7cdc087234
|
@ -515,6 +515,11 @@ int Assemble(struct supertype *st, char *mddev,
|
||||||
conf_name_is_free(name))
|
conf_name_is_free(name))
|
||||||
trustworthy = LOCAL;
|
trustworthy = LOCAL;
|
||||||
|
|
||||||
|
if (trustworthy == LOCAL &&
|
||||||
|
strchr(name, ':'))
|
||||||
|
/* Ignore 'host:' prefix of name */
|
||||||
|
name = strchr(name, ':')+1;
|
||||||
|
|
||||||
mdfd = create_mddev(mddev, name, ident->autof, trustworthy,
|
mdfd = create_mddev(mddev, name, ident->autof, trustworthy,
|
||||||
chosen_name);
|
chosen_name);
|
||||||
if (mdfd < 0) {
|
if (mdfd < 0) {
|
||||||
|
|
|
@ -260,12 +260,8 @@ int Incremental(char *devname, int verbose, int runstop,
|
||||||
return Incremental_container(st, devname, verbose, runstop,
|
return Incremental_container(st, devname, verbose, runstop,
|
||||||
autof, trustworthy);
|
autof, trustworthy);
|
||||||
}
|
}
|
||||||
name_to_use = strchr(info.name, ':');
|
|
||||||
if (name_to_use)
|
|
||||||
name_to_use++;
|
|
||||||
else
|
|
||||||
name_to_use = info.name;
|
|
||||||
|
|
||||||
|
name_to_use = info.name;
|
||||||
if (name_to_use[0] == 0 &&
|
if (name_to_use[0] == 0 &&
|
||||||
info.array.level == LEVEL_CONTAINER &&
|
info.array.level == LEVEL_CONTAINER &&
|
||||||
trustworthy == LOCAL) {
|
trustworthy == LOCAL) {
|
||||||
|
@ -277,6 +273,12 @@ int Incremental(char *devname, int verbose, int runstop,
|
||||||
conf_name_is_free(name_to_use))
|
conf_name_is_free(name_to_use))
|
||||||
trustworthy = LOCAL;
|
trustworthy = LOCAL;
|
||||||
|
|
||||||
|
/* strip "hostname:" prefix from name if we have decided
|
||||||
|
* to treat it as LOCAL
|
||||||
|
*/
|
||||||
|
if (trustworthy == LOCAL && strchr(name_to_use, ':') != NULL)
|
||||||
|
name_to_use = strchr(name_to_use, ':')+1;
|
||||||
|
|
||||||
/* 4/ Check if array exists.
|
/* 4/ Check if array exists.
|
||||||
*/
|
*/
|
||||||
map_lock(&map);
|
map_lock(&map);
|
||||||
|
|
Loading…
Reference in New Issue