summaryrefslogtreecommitdiffstats
path: root/mdadm.c
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2005-06-07 23:03:46 +0000
committerNeil Brown <neilb@suse.de>2005-06-07 23:03:46 +0000
commitea32955930cc63d2fa445ff00437f5f767f7a4af (patch)
tree2778cbed10cdee740eea76dde1ab2f18f2ee6a09 /mdadm.c
parent8d75b7fce26fd0c41e53e9d9000ebbf969fd5fee (diff)
downloadmdadm-ea32955930cc63d2fa445ff00437f5f767f7a4af.tar.gz
mdadm-ea32955930cc63d2fa445ff00437f5f767f7a4af.tar.xz
mdadm-ea32955930cc63d2fa445ff00437f5f767f7a4af.zip
Increase max-devs on type-1 superblocks
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Diffstat (limited to 'mdadm.c')
-rw-r--r--mdadm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/mdadm.c b/mdadm.c
index 83b452e..6c7162a 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -50,6 +50,7 @@ int main(int argc, char *argv[])
int level = UnSet;
int layout = UnSet;
int raiddisks = 0;
+ int max_disks = MD_SB_DISKS;
int sparedisks = 0;
struct mddev_ident_s ident;
char *configfile = NULL;
@@ -302,6 +303,7 @@ int main(int argc, char *argv[])
fprintf(stderr, Name ": unrecognised metadata identifier: %s\n", optarg);
exit(2);
}
+ max_disks = ss->max_devs;
continue;
case O(GROW,'z'):
@@ -425,7 +427,7 @@ int main(int argc, char *argv[])
exit(2);
}
raiddisks = strtol(optarg, &c, 10);
- if (!optarg[0] || *c || raiddisks<=0 || raiddisks > MD_SB_DISKS) {
+ if (!optarg[0] || *c || raiddisks<=0 || raiddisks > max_disks) {
fprintf(stderr, Name ": invalid number of raid devices: %s\n",
optarg);
exit(2);
@@ -451,7 +453,7 @@ int main(int argc, char *argv[])
exit(2);
}
sparedisks = strtol(optarg, &c, 10);
- if (!optarg[0] || *c || sparedisks < 0 || sparedisks > MD_SB_DISKS - raiddisks) {
+ if (!optarg[0] || *c || sparedisks < 0 || sparedisks > max_disks - raiddisks) {
fprintf(stderr, Name ": invalid number of spare-devices: %s\n",
optarg);
exit(2);