[lvm-devel] master - thin: fix chunk_size conversion prompt skip

Zdenek Kabelac zkabelac at fedoraproject.org
Wed Jul 2 08:48:40 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=3af761ba167236a2d66f8687ade5db6311498d06
Commit:        3af761ba167236a2d66f8687ade5db6311498d06
Parent:        93a80018ae8e2f3f56e56b42237779661c9040b3
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Tue Jul 1 11:04:14 2014 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Wed Jul 2 10:43:56 2014 +0200

thin: fix chunk_size conversion prompt skip

Use --force only enables prompting for dangerous operation.
User has to add --yes to skip this prompt.
---
 WHATS_NEW         |    1 +
 tools/lvconvert.c |   27 +++++++++++++++++++--------
 2 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/WHATS_NEW b/WHATS_NEW
index 230bdf0..8934d6f 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.108 -
 =================================
+  Require --yes option to skip prompt to lvconvert thin pool chunksize.
   Support lvremove -ff to remove thin volumes from broken thin pools.
   Require --yes to skip raid repair prompt.
   Change makefile %.d generation to handle filename changes without make clean.
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index d80fa60..be2c916 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -2805,14 +2805,25 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
 
 			if (!arg_count(cmd, chunksize_ARG))
 				lp->chunk_size = seg->chunk_size;
-			else if ((lp->chunk_size != seg->chunk_size) &&
-				 !lp->force &&
-				 yes_no_prompt("Do you really want to change chunk size %s to %s for %s/%s "
-					       "pool volume? [y/n]: ", display_size(cmd, seg->chunk_size),
-					       display_size(cmd, lp->chunk_size),
-					       pool_lv->vg->name, pool_lv->name) == 'n') {
-				log_error("Conversion aborted.");
-				return 0;
+			else if (lp->chunk_size != seg->chunk_size) {
+				if (lp->force == PROMPT) {
+					log_error("Chunk size can be only changed with --force. Conversion aborted.");
+					return 0;
+				}
+				/* Ok, user has likely some serious reason for this */
+				if (!lp->yes &&
+				    yes_no_prompt("Do you really want to change chunk size %s to %s "
+						  "for %s/%s pool volume? [y/n]: ",
+						  display_size(cmd, seg->chunk_size),
+						  display_size(cmd, lp->chunk_size),
+						  pool_lv->vg->name, pool_lv->name) == 'n') {
+					log_error("Conversion aborted.");
+					return 0;
+				}
+				log_warn("WARNING: Changing chunk size %s to %s for %s/%s pool volume.",
+					 display_size(cmd, seg->chunk_size),
+					 display_size(cmd, lp->chunk_size),
+					 pool_lv->vg->name, pool_lv->name);
 			}
 			if (!arg_count(cmd, discards_ARG))
 				lp->discards = seg->discards;




More information about the lvm-devel mailing list