summaryrefslogtreecommitdiffstats
path: root/Create.c
diff options
context:
space:
mode:
Diffstat (limited to 'Create.c')
-rw-r--r--Create.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/Create.c b/Create.c
index fb9857b..64bf0e2 100644
--- a/Create.c
+++ b/Create.c
@@ -117,6 +117,12 @@ int Create(char *mddev, int mdfd,
default: /* no layout */
layout = 0;
break;
+ case 10:
+ layout = 0x102; /* near=2, far=1 */
+ if (verbose)
+ fprintf(stderr,
+ Name ": layout defaults to n1\n");
+ break;
case 5:
case 6:
layout = map_name(r5layout, "default");
@@ -126,9 +132,18 @@ int Create(char *mddev, int mdfd,
break;
}
+ if (level == 10)
+ /* check layout fits in array*/
+ if ((layout&255) * ((layout>>8)&255) > raiddisks) {
+ fprintf(stderr, Name ": that layout requires at least %d devices\n",
+ (layout&255) * ((layout>>8)&255));
+ return 1;
+ }
+
switch(level) {
case 4:
case 5:
+ case 10:
case 6:
case 0:
case -1: /* linear */