diff options
Diffstat (limited to 'debian/patches/rebuildmap-strip-local-host-name-from-device-name.patch')
-rw-r--r-- | debian/patches/rebuildmap-strip-local-host-name-from-device-name.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/debian/patches/rebuildmap-strip-local-host-name-from-device-name.patch b/debian/patches/rebuildmap-strip-local-host-name-from-device-name.patch new file mode 100644 index 00000000..f7c9b1b7 --- /dev/null +++ b/debian/patches/rebuildmap-strip-local-host-name-from-device-name.patch @@ -0,0 +1,47 @@ +From 628cdf19ea35daad22e409e51c0abc7ffb19d6aa Mon Sep 17 00:00:00 2001 +From: NeilBrown <neilb@suse.de> +Date: Mon, 3 Nov 2014 12:49:05 +1100 +Subject: 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> +--- + mapfile.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/mapfile.c b/mapfile.c +index 4e7f242..41599df 100644 +--- a/mapfile.c ++++ b/mapfile.c +@@ -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) +-- +1.7.10.4 + |