diff --git a/WHATS_NEW b/WHATS_NEW index a0504fcea..0904940b2 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.99 - =================================== + When no '-i' argument is given for RAID10, default to 2 stripes. Do not allow --splitmirrors on RAID10 logical volumes. Skip mlocking [vectors] on arm architecture. Support allocation of pool metadata with lvconvert command. diff --git a/tools/lvcreate.c b/tools/lvcreate.c index 801ff6491..0d76bbe9d 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -493,13 +493,24 @@ static int _read_raid_params(struct lvcreate_params *lp, * lp->stripes * lp->stripe_size * - * For RAID 4/5/6, these values must be set. + * For RAID 4/5/6/10, these values must be set. */ if (!segtype_is_mirrored(lp->segtype) && (lp->stripes <= lp->segtype->parity_devs)) { log_error("Number of stripes must be at least %d for %s", lp->segtype->parity_devs + 1, lp->segtype->name); return 0; + } else if (!strcmp(lp->segtype->name, "raid10") && (lp->stripes < 2)) { + if (arg_count(cmd, stripes_ARG)) { + /* User supplied the bad argument */ + log_error("Segment type 'raid10' requires 2 or more stripes."); + return 0; + } + /* No stripe argument was given - default to 2 */ + lp->stripes = 2; + lp->stripe_size = find_config_tree_int(cmd, + "metadata/stripesize", + DEFAULT_STRIPESIZE) * 2; } /*