]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
mdopen: only let numeric name set minor number if it doesn't cause a conflict.
authorNeilBrown <neilb@suse.de>
Tue, 4 Nov 2008 09:54:50 +0000 (20:54 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 4 Nov 2008 09:54:50 +0000 (20:54 +1100)
So if the array with minor number matching the name of a new array
already exists, just assemble with a different minor number.

Signed-off-by: NeilBrown <neilb@suse.de>
mdopen.c

index 32ccdbbe404f2cb977e73c38a578b1cd8e3d5c86..e1c0d7f2ffcece6350ad391ea94475c387734660 100644 (file)
--- a/mdopen.c
+++ b/mdopen.c
@@ -235,11 +235,14 @@ int create_mddev(char *dev, char *name, int autof, int trustworthy,
                        use_mdp = 0;
        }
        if (num < 0 && trustworthy == LOCAL && name) {
-               /* if name is numeric, us that for num */
+               /* if name is numeric, use that for num
+                * if it is not already in use */
                char *ep;
                num = strtoul(name, &ep, 10);
                if (ep == name || *ep)
                        num = -1;
+               else if (mddev_busy(use_mdp ? (-1-num) : num))
+                       num = -1;
        }
 
        if (num < 0) {