#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,
if (name == NULL || *name == 0) {
/* base name on mddev */
+ /* /dev/md0 -> 0
+ * /dev/md_d0 -> d0
+ * /dev/md/1 -> 1
+ * /dev/md/d1 -> d1
+ * /dev/md/home -> home
+ * /dev/mdhome -> home
+ */
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 += 3;
+ else if (strncmp(name, "md", 2)==0 &&
+ strlen(name) > 2 &&
+ isdigit(name[2]) &&
+ (name-mddev) == 5 /* /dev/ */)
name += 2;
}
}