summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--Create.c11
2 files changed, 11 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 0640dc5a..c1e1b7da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@ Changes Prior to 2.5.3 release
- Document v0.91 superblocks in md.4
- Make GPL explicit in man pages.
- Fix recent breakage of starting degraded arrays.
+ - Tidyup automatic name choice for v-1 arrays:
+ /dev/md_d0 now becomes '0', not '_d0'.
Changes Prior to 2.5.2 release
- Fix problem with compiling with gcc-2 compilers
diff --git a/Create.c b/Create.c
index 75db3823..ba6a8247 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;
}
}