1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

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.
This commit is contained in:
Zdenek Kabelac 2017-10-23 10:56:44 +02:00
parent d6f4563103
commit de58df390b
2 changed files with 12 additions and 11 deletions

View File

@ -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.

View File

@ -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