From: NeilBrown Date: Mon, 20 Aug 2012 00:50:42 +0000 (+1000) Subject: find_free_devnum: avoid auto-using names in /etc/mdadm.conf X-Git-Tag: mdadm-3.3-rc1~231 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb52f2457a4df4f7061be7a0524763193a6355a7;p=thirdparty%2Fmdadm.git find_free_devnum: avoid auto-using names in /etc/mdadm.conf high-number names like "/dev/md126" shouldn't be in /etc/mdadm.conf, but if they are they should be ignored when choosing an unused number. Signed-off-by: NeilBrown --- diff --git a/util.c b/util.c index eb466502..5a573927 100644 --- a/util.c +++ b/util.c @@ -811,10 +811,14 @@ int find_free_devnum(int use_partitions) devnum = devnum ? devnum-1 : (1<<20)-1) { char *dn; int _devnum; + char nbuf[50]; _devnum = use_partitions ? (-1-devnum) : devnum; if (mddev_busy(_devnum)) continue; + sprintf(nbuf, "%s%d", use_partitions?"mdp":"md", devnum); + if (!conf_name_is_free(nbuf)) + continue; /* make sure it is new to /dev too, at least as a * non-standard */ dn = map_dev(dev2major(_devnum), dev2minor(_devnum), 0);