diff options
author | NeilBrown <neilb@suse.de> | 2014-11-03 02:49:05 +0100 |
---|---|---|
committer | NeilBrown <neilb@suse.de> | 2014-11-03 02:49:05 +0100 |
commit | 628cdf19ea35daad22e409e51c0abc7ffb19d6aa (patch) | |
tree | a4313890310a3ba7dc94219bb34cc1fafc421c23 /mapfile.c | |
parent | mdcheck: don't git error if not /dev/md?* devices exist. (diff) | |
download | mdadm-628cdf19ea35daad22e409e51c0abc7ffb19d6aa.tar.xz mdadm-628cdf19ea35daad22e409e51c0abc7ffb19d6aa.zip |
Rebuildmap: strip local host name from device name.
When /run/mdadm/map is being rebuilt, e.g. by "mdadm -Ir",
if the device doesn't exist in /dev, we have to choose
a name.
Currently we don't strip the hostname which is wrong if
it is the local host.
Reported-by: Stephen Kent <smkent@smkent.net>
Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'mapfile.c')
-rw-r--r-- | mapfile.c | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -455,12 +455,19 @@ void RebuildMap(void) sep = ""; } } - if (strchr(name, ':')) - /* probably a uniquifying + if (strchr(name, ':')) { + /* Probably a uniquifying * hostname prefix. Allow - * without a suffix + * without a suffix, and strip + * hostname if it is us. */ + if (homehost && unum == -1 && + strncmp(name, homehost, + strlen(homehost)) == 0 && + name[strlen(homehost)] == ':') + name += strlen(homehost)+1; unum = -1; + } while (conflict) { if (unum >= 0) |