summaryrefslogtreecommitdiffstats
path: root/Create.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2006-08-07 11:30:02 +1000
committerNeil Brown <neilb@suse.de>2006-08-07 11:30:02 +1000
commit60248f743376a69e155f2a48cb77b89b281602ff (patch)
tree0001525f78349b7009e1a89eb0fa5f30b34da8d7 /Create.c
parent43f2372a034d49a9512685c5aacfcdfc67665580 (diff)
downloadmdadm-60248f743376a69e155f2a48cb77b89b281602ff.tar.gz
mdadm-60248f743376a69e155f2a48cb77b89b281602ff.tar.xz
mdadm-60248f743376a69e155f2a48cb77b89b281602ff.zip
Tidyup automatic name choice for v-1 arrays
/dev/md_d0 now becomes '0', not '_d0'.
Diffstat (limited to 'Create.c')
-rw-r--r--Create.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/Create.c b/Create.c
index 75db382..ba6a824 100644
--- a/Create.c
+++ b/Create.c
@@ -30,6 +30,7 @@
#include "mdadm.h"
#include "md_u.h"
#include "md_p.h"
+#include <ctype.h>
int Create(struct supertype *st, char *mddev, int mdfd,
int chunk, int level, int layout, unsigned long long size, int raiddisks, int sparedisks,
@@ -399,9 +400,15 @@ int Create(struct supertype *st, char *mddev, int mdfd,
name = strrchr(mddev, '/');
if (name) {
name++;
- if (strncmp(name, "md", 2)==0 &&
- strlen(name) > 2 &&
+ if (strncmp(name, "md_d", 4)==0 &&
+ strlen(name) > 4 &&
+ isdigit(name[4]) &&
(name-mddev) == 5 /* /dev/ */)
+ name += 4;
+ else if (strncmp(name, "md", 2)==0 &&
+ strlen(name) > 2 &&
+ isdigit(name[2]) &&
+ (name-mddev) == 5 /* /dev/ */)
name += 2;
}
}