summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2012-08-20 10:50:42 +1000
committerNeilBrown <neilb@suse.de>2012-09-27 16:57:49 +1000
commit80841df260bdf76d903a9f0c296c22c8b69603d4 (patch)
treee86ddd65c5166c59bb3325121e6308b3d83b9771
parentc4e96a305fbca4f83ae9f3a81482481524380905 (diff)
downloadmdadm-80841df260bdf76d903a9f0c296c22c8b69603d4.tar.gz
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 <neilb@suse.de>
-rw-r--r--util.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/util.c b/util.c
index ac0f78c..83f3187 100644
--- a/util.c
+++ b/util.c
@@ -796,10 +796,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);