summaryrefslogtreecommitdiffstats
path: root/Create.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2004-08-11 02:16:01 +0000
committerNeil Brown <neilb@suse.de>2004-08-11 02:16:01 +0000
commite5329c3747a4e9eb7addbfaa59b8d5e8688ce2a1 (patch)
tree889e38efabcc146f7ee4c59f39c79aae7c783d8d /Create.c
parentdd0781e50555c32ff2f808ec46f4b03a5693ea47 (diff)
downloadmdadm-e5329c3747a4e9eb7addbfaa59b8d5e8688ce2a1.tar.gz
mdadm-e5329c3747a4e9eb7addbfaa59b8d5e8688ce2a1.tar.xz
mdadm-e5329c3747a4e9eb7addbfaa59b8d5e8688ce2a1.zip
mdadm-1.7.0mdadm-1.7.0
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 */