[lvm-devel] LVM2 ./WHATS_NEW tools/lvconvert.c

agk at sourceware.org agk at sourceware.org
Mon Jan 14 21:11:47 UTC 2008


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2008-01-14 21:11:47

Modified files:
	.              : WHATS_NEW 
	tools          : lvconvert.c 

Log message:
	lvconvert waits for initial completion by default

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.758&r2=1.759
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvconvert.c.diff?cvsroot=lvm2&r1=1.53&r2=1.54

--- LVM2/WHATS_NEW	2008/01/11 07:02:34	1.758
+++ LVM2/WHATS_NEW	2008/01/14 21:11:47	1.759
@@ -1,5 +1,6 @@
 Version 2.02.30 -
 ===================================
+  lvconvert waits for completion of initial sync by default.
   Refactor vgcreate for parameter validation and add tests.
   Add new convert_lv field to lvs output.
   Print warning when lvm tools are running as non-root.
--- LVM2/tools/lvconvert.c	2008/01/10 18:35:51	1.53
+++ LVM2/tools/lvconvert.c	2008/01/14 21:11:47	1.54
@@ -24,7 +24,8 @@
 	const char *lv_name;
 	const char *lv_name_full;
 	const char *vg_name;
-	int wait_daemon;
+	int wait_completion;
+	int need_polling;
 
 	uint32_t chunk_size;
 	uint32_t region_size;
@@ -116,6 +117,9 @@
 		return 0;
 	}
 
+	if (!arg_count(cmd, background_ARG))
+		lp->wait_completion = 1;
+
 	if (arg_count(cmd, snapshot_ARG))
 		lp->snapshot = 1;
 
@@ -374,7 +378,7 @@
 	/* If called with no argument, try collapsing the resync layers */
 	if (!arg_count(cmd, mirrors_ARG) && !arg_count(cmd, mirrorlog_ARG) &&
 	    !arg_count(cmd, corelog_ARG)) {
-		lp->wait_daemon = 1;
+		lp->need_polling = 1;
 		return 1;
 	}
 
@@ -476,6 +480,8 @@
 				    corelog ? 0U : 1U, lp->pvh, lp->alloc,
 				    MIRROR_BY_LV))
 			return_0;
+		if (lp->wait_completion)
+			lp->need_polling = 1;
 		goto commit_changes;
 	}
 
@@ -549,7 +555,7 @@
 				    MIRROR_BY_LV))
 			return_0;
 		lv->status |= CONVERTING;
-		lp->wait_daemon = 1;
+		lp->need_polling = 1;
 	} else {
 		/* Reduce number of mirrors */
 		if (!lv_remove_mirrors(cmd, lv, existing_mirrors - lp->mirrors,
@@ -584,7 +590,7 @@
 		return 0;
 	}
 
-	if (!lp->wait_daemon)
+	if (!lp->need_polling)
 		log_print("Logical volume %s converted.", lv->name);
 
 	return 1;
@@ -740,13 +746,13 @@
 error:
 	unlock_vg(cmd, lp.vg_name);
 
-	if (ret == ECMD_PROCESSED && lp.wait_daemon) {
+	if (ret == ECMD_PROCESSED && lp.need_polling) {
 		if (!lv_info(cmd, lvl->lv, &info, 1, 0) || !info.exists) {
 			log_print("Conversion starts after activation");
 			return ret;
 		}
 		ret = lvconvert_poll(cmd, lp.lv_name_full,
-				     arg_count(cmd, background_ARG) ? 1U : 0);
+				     lp.wait_completion ? 0 : 1U);
 	}
 
 	return ret;




More information about the lvm-devel mailing list