diff options
author | Heinz Mauelshagen <heinzm@redhat.com> | 2019-11-26 22:17:34 +0100 |
---|---|---|
committer | Heinz Mauelshagen <heinzm@redhat.com> | 2019-11-26 22:31:58 +0100 |
commit | 29db9c6325ac3552b0ba3a0f49682e8e8112cca2 (patch) | |
tree | 9d7509ea6e4088a0d826f54b33ad6e40038fcede | |
parent | 2037476008ea42e79388a407355c7f285656a5d9 (diff) | |
download | lvm2-29db9c6325ac3552b0ba3a0f49682e8e8112cca2.tar.gz |
lvcreate: ensure striped raid region size is at least stripe size
The kernel MD runtime requires region size to be larger than stripe size
on striped raid layouts, thus the dm-raid target's constructor rejects
such request.
This causes e.g. an 'lvcreate --type raid10 -i3 -I4096 -R2048 -n lv vg' to fail.
Avoid failing late in the kernel by enforcing region size to be
larger or equal to stripe size.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1698225
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | tools/lvcreate.c | 7 |
2 files changed, 8 insertions, 0 deletions
@@ -1,5 +1,6 @@ Version 2.03.07 - =================================== + Ensure minimum required region size on striped RaidLV creation. Fix resize of thin-pool with data and metadata of different segtype. Improve mirror type leg splitting. Fix activation order when removing merged snapshot. diff --git a/tools/lvcreate.c b/tools/lvcreate.c index ebe6c9f46..4a1534cc2 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -575,6 +575,13 @@ static int _read_raid_params(struct cmd_context *cmd, log_error("Minimum recovery rate cannot be higher than maximum."); return 0; } + + if (lp->region_size < lp->stripe_size) { + log_print_unless_silent("Adjusting %s %s region size to required minimum of stripe size %s.", + lp->segtype->name, display_size(cmd, (uint64_t)lp->region_size), + display_size(cmd, (uint64_t)lp->stripe_size)); + lp->region_size = lp->stripe_size; + } } return 1; |