From 7cdc0872342e8834f224132867ea88ee04e050bf Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 11 May 2009 15:47:10 +1000 Subject: [PATCH] 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 --- Assemble.c | 5 +++++ Incremental.c | 12 +++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Assemble.c b/Assemble.c index 2c52f074..e75c7e5e 100644 --- a/Assemble.c +++ b/Assemble.c @@ -515,6 +515,11 @@ int Assemble(struct supertype *st, char *mddev, conf_name_is_free(name)) trustworthy = LOCAL; + if (trustworthy == LOCAL && + strchr(name, ':')) + /* Ignore 'host:' prefix of name */ + name = strchr(name, ':')+1; + mdfd = create_mddev(mddev, name, ident->autof, trustworthy, chosen_name); if (mdfd < 0) { diff --git a/Incremental.c b/Incremental.c index c5ec6340..8e711d98 100644 --- a/Incremental.c +++ b/Incremental.c @@ -260,12 +260,8 @@ int Incremental(char *devname, int verbose, int runstop, return Incremental_container(st, devname, verbose, runstop, 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 && info.array.level == LEVEL_CONTAINER && trustworthy == LOCAL) { @@ -277,6 +273,12 @@ int Incremental(char *devname, int verbose, int runstop, conf_name_is_free(name_to_use)) 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. */ map_lock(&map); -- 2.39.2