]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Create new md devices consistently
authorJustin Maggard <jmaggard10@gmail.com>
Tue, 23 Oct 2012 22:04:00 +0000 (15:04 -0700)
committerNeilBrown <neilb@suse.de>
Wed, 24 Oct 2012 01:07:32 +0000 (12:07 +1100)
 Creating a new MD device with the name 'd-0' results in some
 unexpected behavior, since mdadm sees that '-0' is a
 non-negative integer and therefore makes a "partitionable"
 device (/dev/md_d0).  This is not the expected behavior,
 since the documentation mentions 'dN' several places, and a
 reboot brings it up as /dev/md/d-0.  Make this consistent
 by ensuring that the character immediately following 'd' is
 a digit during creation.

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

index 61eda8120a3b670e4d628fa0aad6e3ffc20eaddf..24188df69912555a4bd02aaef241f15348a70eb1 100644 (file)
--- a/mdopen.c
+++ b/mdopen.c
@@ -207,7 +207,10 @@ int create_mddev(char *dev, char *name, int autof, int trustworthy,
                        char *ep;
                        if (cname[0] == 'd')
                                sp++;
-                       num = strtoul(sp, &ep, 10);
+                       if (isdigit(sp[0]))
+                               num = strtoul(sp, &ep, 10);
+                       else
+                               ep = sp;
                        if (ep == sp || *ep || num < 0)
                                num = -1;
                        else if (cname[0] == 'd')