mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +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:
parent
8f305f025e
commit
8333d5a969
@ -1,5 +1,7 @@
|
|||||||
Version 2.02.171 -
|
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.
|
Fix configure --enable-notify-dbus status message.
|
||||||
Change configure option name prefix from --enable-lockd to --enable-lvmlockd.
|
Change configure option name prefix from --enable-lockd to --enable-lvmlockd.
|
||||||
lvcreate - raise mirror/raid default regionsize to 2MiB
|
lvcreate - raise mirror/raid default regionsize to 2MiB
|
||||||
|
@ -60,6 +60,7 @@ struct lvconvert_params {
|
|||||||
int need_polling;
|
int need_polling;
|
||||||
|
|
||||||
uint32_t region_size;
|
uint32_t region_size;
|
||||||
|
unsigned region_size_supplied;
|
||||||
|
|
||||||
uint32_t mirrors;
|
uint32_t mirrors;
|
||||||
sign_t mirrors_sign;
|
sign_t mirrors_sign;
|
||||||
@ -247,10 +248,13 @@ static int _read_params(struct cmd_context *cmd, struct lvconvert_params *lp)
|
|||||||
return 0;
|
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);
|
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 = 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 */
|
/* FIXME man page says in one place that --type and --mirrors can't be mixed */
|
||||||
if (lp->mirrors_supplied && !lp->mirrors)
|
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));
|
DEFAULT_RAID1_MAX_IMAGES, lp->segtype->name, display_lvname(lv));
|
||||||
return 0;
|
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;
|
return_0;
|
||||||
|
|
||||||
log_print_unless_silent("Logical volume %s successfully converted.",
|
log_print_unless_silent("Logical volume %s successfully converted.",
|
||||||
|
Loading…
Reference in New Issue
Block a user