summaryrefslogtreecommitdiffstats
path: root/mdadm.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2006-05-15 02:46:54 +0000
committerNeil Brown <neilb@suse.de>2006-05-15 02:46:54 +0000
commitb578481ca382959da894ebdd91c5e5f45d50374d (patch)
tree957c835dfdf7632dc05ea91ba8ba82137fd4ceed /mdadm.c
parenta99d6b669c4dbe7f9609c720c9f114e278b4388b (diff)
downloadmdadm-b578481ca382959da894ebdd91c5e5f45d50374d.tar.gz
mdadm-b578481ca382959da894ebdd91c5e5f45d50374d.tar.xz
mdadm-b578481ca382959da894ebdd91c5e5f45d50374d.zip
Support new offset layout for raid10
Requires 2.6.18. Signed-off-by: Neil Brown <neilb@suse.de>
Diffstat (limited to 'mdadm.c')
-rw-r--r--mdadm.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/mdadm.c b/mdadm.c
index 05784e1..f310474 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -403,16 +403,18 @@ int main(int argc, char *argv[])
break;
case 10:
- /* 'f' or 'n' followed by a number <= raid_disks */
- if ((optarg[0] != 'n' && optarg[0] != 'f') ||
+ /* 'f', 'o' or 'n' followed by a number <= raid_disks */
+ if ((optarg[0] != 'n' && optarg[0] != 'f' && optarg[0] != 'o') ||
(copies = strtoul(optarg+1, &cp, 10)) < 1 ||
copies > 200 ||
*cp) {
- fprintf(stderr, Name ": layout for raid10 must be 'nNN' or 'fNN' where NN is a number, not %s\n", optarg);
+ fprintf(stderr, Name ": layout for raid10 must be 'nNN', 'oNN' or 'fNN' where NN is a number, not %s\n", optarg);
exit(2);
}
if (optarg[0] == 'n')
layout = 256 + copies;
+ else if (optarg[0] == 'o')
+ layout = 0x10000 + (copies<<8) + 1;
else
layout = 1 + (copies<<8);
break;