summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2017-10-23 10:56:44 +0200
committerZdenek Kabelac <zkabelac@redhat.com>2017-10-23 11:58:27 +0200
commitde58df390b6bd3f46841fdacb9a75defccf9f3e2 (patch)
treeee38bc6e02f1baf13b4825990c2de0a417b4e7d0
parentd6f4563103a626bbe6a9e768a090233541ecd24c (diff)
downloadlvm2-de58df390b6bd3f46841fdacb9a75defccf9f3e2.tar.gz
lvconvert: preserve names of converted LV
When prompting and warning for conversion, remember initial LV names, so after conversion is finished, correct original names are printed.
-rw-r--r--WHATS_NEW1
-rw-r--r--tools/lvconvert.c22
2 files changed, 12 insertions, 11 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 8ee5b0c7c..2644d37ea 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.176 -
===================================
+ Show original converted names when lvconverting LV to pool volume.
Move lib code used only by liblvm into metadata-liblvm.c.
Distinguish between device not found and excluded by filter.
Monitor external origin LVs.
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index 28909dd3e..02c649c4f 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -2864,6 +2864,7 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
const char *pool_name; /* name of original lv arg */
char meta_name[NAME_LEN]; /* generated sub lv name */
char data_name[NAME_LEN]; /* generated sub lv name */
+ char converted_names[3*NAME_LEN]; /* preserve names of converted lv */
struct segment_type *pool_segtype; /* thinpool or cachepool */
struct lv_segment *seg;
unsigned int target_attr = ~0;
@@ -3052,14 +3053,16 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
log_verbose("Pool metadata extents %u chunk_size %u", meta_extents, chunk_size);
+ (void) dm_snprintf(converted_names, sizeof(converted_names), "%s%s%s",
+ display_lvname(lv),
+ metadata_lv ? " and " : "",
+ metadata_lv ? display_lvname(metadata_lv) : "");
+
/*
* Verify that user wants to use these LVs.
*/
-
- log_warn("WARNING: Converting logical volume %s%s%s to %s pool's data%s %s metadata wiping.",
- display_lvname(lv),
- metadata_lv ? " and " : "",
- metadata_lv ? display_lvname(metadata_lv) : "",
+ log_warn("WARNING: Converting %s to %s pool's data%s %s metadata wiping.",
+ converted_names,
to_cachepool ? "cache" : "thin",
metadata_lv ? " and metadata volumes" : " volume",
zero_metadata ? "with" : "WITHOUT");
@@ -3070,10 +3073,8 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
log_warn("WARNING: Using mismatched cache pool metadata MAY DESTROY YOUR DATA!");
if (!arg_count(cmd, yes_ARG) &&
- yes_no_prompt("Do you really want to convert %s%s%s? [y/n]: ",
- display_lvname(lv),
- metadata_lv ? " and " : "",
- metadata_lv ? display_lvname(metadata_lv) : "") == 'n') {
+ yes_no_prompt("Do you really want to convert %s? [y/n]: ",
+ converted_names) == 'n') {
log_error("Conversion aborted.");
goto bad;
}
@@ -3289,8 +3290,7 @@ out:
if (r)
log_print_unless_silent("Converted %s to %s pool.",
- display_lvname(lv),
- to_cachepool ? "cache" : "thin");
+ converted_names, to_cachepool ? "cache" : "thin");
/*
* Unlock and free the locks from existing LVs that became pool data