summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinz Mauelshagen <heinzm@redhat.com>2017-02-07 19:01:02 +0100
committerHeinz Mauelshagen <heinzm@redhat.com>2017-02-07 19:05:01 +0100
commit79f31008fa10cc4893b6f98ad3e0de188aa5e7b0 (patch)
tree14f838c834a2c7213382dbaa1edbaffaae45ebe6
parent69fe8729f3d60b0c9b9a0b2db6b36e38c00b9127 (diff)
downloadlvm2-79f31008fa10cc4893b6f98ad3e0de188aa5e7b0.tar.gz
lvconvert: add support to change RAID region size (fixup)
Commit cfb6ef654d3d1f1dd02569a1d5bd2fc252ae2494 introduced support to change RAID region size. Fix: - don't change region_size until after prompting the user - use log_print_unless_silent() instead of log_warn() - avoid superfluous sigint() calls which are already covered in yes_no_prompt() - typo Related: rhbz1392947
-rw-r--r--lib/metadata/raid_manip.c33
1 files changed, 14 insertions, 19 deletions
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index f55d3d8ac..ae779febf 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -2913,8 +2913,6 @@ static int _raid1_to_mirrored_wrapper(TAKEOVER_FN_ARGS)
display_lvname(lv), SEG_TYPE_NAME_MIRROR);
return 0;
}
- if (sigint_caught())
- return_0;
/* Archive metadata */
if (!archive(lv->vg))
@@ -3128,8 +3126,6 @@ static int _raid456_to_raid0_or_striped_wrapper(TAKEOVER_FN_ARGS)
display_lvname(lv), new_segtype->name);
return 0;
}
- if (sigint_caught())
- return_0;
/* Archive metadata */
if (!archive(lv->vg))
@@ -3889,14 +3885,14 @@ static int _region_size_change_requested(struct logical_volume *lv, int yes, uin
if (!region_size)
return_0;
- /* CLI validation prvides the check but be caucious... */
+ /* CLI validation provides the check but be caucious... */
if (seg_is_any_raid0(seg))
return_0;
if (region_size == seg->region_size) {
- log_warn("Region size wouldn't change on %s LV %s.",
- lvseg_name(seg), display_lvname(lv));
- return 0;
+ log_print_unless_silent("Region size wouldn't change on %s LV %s.",
+ lvseg_name(seg), display_lvname(lv));
+ return 1;
}
if (region_size * 8 > lv->size) {
@@ -3906,7 +3902,7 @@ static int _region_size_change_requested(struct logical_volume *lv, int yes, uin
}
if (region_size < seg->stripe_size) {
- log_error("Region size for LV %s is smaller than stripe size.",
+ log_error("Requested region size for LV %s is smaller than stripe size.",
display_lvname(lv));
return 0;
}
@@ -3918,8 +3914,16 @@ static int _region_size_change_requested(struct logical_volume *lv, int yes, uin
}
old_region_size = seg->region_size;
+ seg_region_size_str = display_size(lv->vg->cmd, region_size);
+
+ if (!yes && yes_no_prompt("Do you really want to change the region_size %s of LV %s to %s? [y/n]: ",
+ display_size(lv->vg->cmd, old_region_size),
+ display_lvname(lv), seg_region_size_str) == 'n') {
+ log_error("Logical volume %s NOT converted", display_lvname(lv));
+ return 0;
+ }
+
seg->region_size = region_size;
- seg_region_size_str = display_size(lv->vg->cmd, seg->region_size);
_check_and_adjust_region_size(lv);
if (seg->region_size == old_region_size) {
@@ -3928,15 +3932,6 @@ static int _region_size_change_requested(struct logical_volume *lv, int yes, uin
return 1;
}
- if (!yes && yes_no_prompt("Do you really want to change the region_size %s of LV %s to %s? [y/n]: ",
- display_size(lv->vg->cmd, old_region_size),
- display_lvname(lv), seg_region_size_str) == 'n') {
- log_error("Logical volume %s NOT converted", display_lvname(lv));
- return 0;
- }
- if (sigint_caught())
- return_0;
-
/* Check for new region size causing bitmap to still fit metadata image LV */
if (seg->meta_areas && seg_metatype(seg, 0) == AREA_LV && seg_metalv(seg, 0)->le_count <
_raid_rmeta_extents(lv->vg->cmd, lv->le_count, seg->region_size, lv->vg->extent_size)) {