[lvm-devel] [PATCH] lvm2: honor yes and force option by lvconvert

Takahiro Yasui tyasui at redhat.com
Thu Jun 24 16:40:42 UTC 2010


This patch suppresses a following prompt by lvconvert command
when --yes or --force option is specified. 

Full resync required to convert inactive mirror <lv> to core log. Proceed? [y/n]:

This change is useful when lvconvert command is used in a script
and a test case.


Signed-off-by: Takahiro Yasui <tyasui at redhat.com>
---
 lib/metadata/metadata-exported.h |    2 +-
 lib/metadata/mirror.c            |    5 +++--
 tools/lvconvert.c                |    4 +++-
 3 files changed, 7 insertions(+), 4 deletions(-)

Index: LVM2-2.02.68/lib/metadata/metadata-exported.h
===================================================================
--- LVM2-2.02.68.orig/lib/metadata/metadata-exported.h
+++ LVM2-2.02.68/lib/metadata/metadata-exported.h
@@ -779,7 +779,7 @@ int add_mirror_images(struct cmd_context
 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);
Index: LVM2-2.02.68/lib/metadata/mirror.c
===================================================================
--- LVM2-2.02.68.orig/lib/metadata/mirror.c
+++ LVM2-2.02.68/lib/metadata/mirror.c
@@ -1517,7 +1517,8 @@ int add_mirrors_to_segments(struct cmd_c
  */
 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;
@@ -1541,7 +1542,7 @@ int remove_mirror_log(struct cmd_context
 		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;
Index: LVM2-2.02.68/tools/lvconvert.c
===================================================================
--- LVM2-2.02.68.orig/tools/lvconvert.c
+++ LVM2-2.02.68/tools/lvconvert.c
@@ -719,7 +719,9 @@ static int _lv_update_log_type(struct cm
 
 	/* 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;
 	}




More information about the lvm-devel mailing list