]> sourceware.org Git - lvm2.git/commitdiff
lvcreate: do not silently accept '-m #' with raid4/5/6
authorHeinz Mauelshagen <heinzm@redhat.com>
Tue, 7 Apr 2015 12:32:25 +0000 (14:32 +0200)
committerHeinz Mauelshagen <heinzm@redhat.com>
Tue, 7 Apr 2015 12:32:25 +0000 (14:32 +0200)
If the user provides '-m #' (# > 0) with mappings
raid4/5/6, the command silently creates
'#mirrors * #stripes + #parity' image component pairs.

Patch rejects '-m #' altogether for those mappings
in order to avoid LV creation with unexpected layout.

- resolves bz#1209445

tools/lvcreate.c

index 3f7fe6f78a27a14d7b17359175279ef1c21ad6e1..e41f76ccbd9f1cf047a59fd2dab04f5e049a81c5 100644 (file)
@@ -474,6 +474,14 @@ static int _read_raid_params(struct cmd_context *cmd,
                return 0;
        }
 
+       if (arg_count(cmd, mirrors_ARG) && segtype_is_raid(lp->segtype) &&
+           strcmp(lp->segtype->name, SEG_TYPE_NAME_RAID1) &&
+           strcmp(lp->segtype->name, SEG_TYPE_NAME_RAID10)) {
+               log_error("Mirror argument cannot be used with segment type, %s",
+                         lp->segtype->name);
+               return 0;
+       }
+
        /* Rates are recorded in kiB/sec/disk, not sectors/sec/disk */
        lp->min_recovery_rate = arg_uint_value(cmd, minrecoveryrate_ARG, 0) / 2;
        lp->max_recovery_rate = arg_uint_value(cmd, maxrecoveryrate_ARG, 0) / 2;
This page took 0.037863 seconds and 5 git commands to generate.