1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-27 01:55:10 +03:00

lvconvert: preserve region size on raid1 image count changes

Unless a change of the regionsize is requested via "lvconvert -R N ...",
keep the region size when the number of images changes in a raid1 LV.

Resolves: rhbz1443705
This commit is contained in:
Heinz Mauelshagen 2017-04-22 02:04:49 +02:00
parent 8f305f025e
commit 8333d5a969
2 changed files with 10 additions and 3 deletions

View File

@ -1,5 +1,7 @@
Version 2.02.171 -
==================================
lvconvert - preserve region size on raid1 image count changes
raid - sanely handle insufficient space on takeover
Fix configure --enable-notify-dbus status message.
Change configure option name prefix from --enable-lockd to --enable-lvmlockd.
lvcreate - raise mirror/raid default regionsize to 2MiB

View File

@ -60,6 +60,7 @@ struct lvconvert_params {
int need_polling;
uint32_t region_size;
unsigned region_size_supplied;
uint32_t mirrors;
sign_t mirrors_sign;
@ -247,10 +248,13 @@ static int _read_params(struct cmd_context *cmd, struct lvconvert_params *lp)
return 0;
}
if (arg_is_set(cmd, regionsize_ARG))
if (arg_is_set(cmd, regionsize_ARG)) {
lp->region_size = arg_uint_value(cmd, regionsize_ARG, 0);
else
lp->region_size_supplied = 1;
} else {
lp->region_size = get_default_region_size(cmd);
lp->region_size_supplied = 0;
}
/* FIXME man page says in one place that --type and --mirrors can't be mixed */
if (lp->mirrors_supplied && !lp->mirrors)
@ -1359,7 +1363,8 @@ static int _lvconvert_raid(struct logical_volume *lv, struct lvconvert_params *l
DEFAULT_RAID1_MAX_IMAGES, lp->segtype->name, display_lvname(lv));
return 0;
}
if (!lv_raid_change_image_count(lv, lp->yes, image_count, lp->region_size, lp->pvh))
if (!lv_raid_change_image_count(lv, lp->yes, image_count,
lp->region_size_supplied ? lp->region_size : seg->region_size , lp->pvh))
return_0;
log_print_unless_silent("Logical volume %s successfully converted.",