From 009e7950bffbb7ff82c444c10b4bf8dbe984ccab Mon Sep 17 00:00:00 2001 From: Petr Rockai Date: Tue, 12 Oct 2010 16:41:17 +0000 Subject: [PATCH] Make lvconvert respect --yes/--force in the inactive log conversion prompt. Fixes BZs 642055, 621281. Patch by Taka. Signed-off-by: Takahiro Yasui Reviewed-by: Petr Rockai --- lib/metadata/metadata-exported.h | 2 +- lib/metadata/mirror.c | 5 +++-- tools/lvconvert.c | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h index 447e4afd7..f2e59df1d 100644 --- a/lib/metadata/metadata-exported.h +++ b/lib/metadata/metadata-exported.h @@ -652,7 +652,7 @@ int add_mirror_images(struct cmd_context *cmd, struct logical_volume *lv, struct logical_volume *detach_mirror_log(struct lv_segment *seg); int attach_mirror_log(struct lv_segment *seg, struct logical_volume *lv); int remove_mirror_log(struct cmd_context *cmd, struct logical_volume *lv, - struct dm_list *removable_pvs); + struct dm_list *removable_pvs, int force); int add_mirror_log(struct cmd_context *cmd, struct logical_volume *lv, uint32_t log_count, uint32_t region_size, struct dm_list *allocatable_pvs, alloc_policy_t alloc); diff --git a/lib/metadata/mirror.c b/lib/metadata/mirror.c index b3f1c0f12..083e9cd6c 100644 --- a/lib/metadata/mirror.c +++ b/lib/metadata/mirror.c @@ -1573,7 +1573,8 @@ int add_mirrors_to_segments(struct cmd_context *cmd, struct logical_volume *lv, */ int remove_mirror_log(struct cmd_context *cmd, struct logical_volume *lv, - struct dm_list *removable_pvs) + struct dm_list *removable_pvs, + int force) { float sync_percent; percent_range_t percent_range = PERCENT_0; @@ -1597,7 +1598,7 @@ int remove_mirror_log(struct cmd_context *cmd, log_error("Unable to convert the log of an inactive " "cluster mirror, %s", lv->name); return 0; - } else if (yes_no_prompt("Full resync required to convert " + } else if (force || yes_no_prompt("Full resync required to convert " "inactive mirror %s to core log. " "Proceed? [y/n]: ", lv->name) == 'y') sync_percent = 0; diff --git a/tools/lvconvert.c b/tools/lvconvert.c index d39030bfb..f9d33e986 100644 --- a/tools/lvconvert.c +++ b/tools/lvconvert.c @@ -747,7 +747,9 @@ static int _lv_update_log_type(struct cmd_context *cmd, /* Remove an existing log completely */ if (!log_count) { - if (!remove_mirror_log(cmd, original_lv, operable_pvs)) + if (!remove_mirror_log(cmd, original_lv, operable_pvs, + arg_count(cmd, yes_ARG) || + arg_count(cmd, force_ARG))) return_0; return 1; } -- 2.43.5