]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
find_free_devnum: avoid auto-using names in /etc/mdadm.conf
authorNeilBrown <neilb@suse.de>
Mon, 20 Aug 2012 00:50:42 +0000 (10:50 +1000)
committerNeilBrown <neilb@suse.de>
Thu, 27 Sep 2012 06:57:49 +0000 (16:57 +1000)
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>
util.c

diff --git a/util.c b/util.c
index ac0f78c50189d14e910caf7ed4e4245aac9a62f1..83f318726c1f285576a4dda453d2ab6bbd27a9e4 100644 (file)
--- 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);