[lvm-devel] LVM2 ./WHATS_NEW_DM libdm/libdm-deptree.c

agk at sourceware.org agk at sourceware.org
Tue May 15 21:27:28 UTC 2012


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2012-05-15 21:27:25

Modified files:
	.              : WHATS_NEW_DM 
	libdm          : libdm-deptree.c 

Log message:
	Set delay_resume_if_new on deptree snapshot origin.
	(Must avoid activating snapshot origin more than once concurrently.)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW_DM.diff?cvsroot=lvm2&r1=1.601&r2=1.602
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/libdm-deptree.c.diff?cvsroot=lvm2&r1=1.165&r2=1.166

--- LVM2/WHATS_NEW_DM	2012/05/08 14:31:44	1.601
+++ LVM2/WHATS_NEW_DM	2012/05/15 21:27:24	1.602
@@ -1,5 +1,6 @@
 Version 1.02.75 - 
 ================================
+  Set delay_resume_if_new on deptree snapshot origin.
   Log value chosen in _find_config_bool like other variable types do.
   Synchronize with dead of dmeventd.
   Rename (Blk)DevNames/DevNos dmsetup header to (Blk)DevNamesUsed/DevNosUsed.
--- LVM2/libdm/libdm-deptree.c	2012/05/15 20:03:12	1.165
+++ LVM2/libdm/libdm-deptree.c	2012/05/15 21:27:24	1.166
@@ -2358,8 +2358,10 @@
 	if ((r = dm_task_run(dmt))) {
 		r = dm_task_get_info(dmt, &dnode->info);
 		if (r && !dnode->info.inactive_table)
-			log_verbose("Suppressed %s identical table reload.",
-				    dnode->name);
+			log_verbose("Suppressed %s (%" PRIu32 ":%" PRIu32
+				    ") identical table reload.",
+				    dnode->name,
+				    dnode->info.major, dnode->info.minor);
 
 		existing_table_size = dm_task_get_existing_table_size(dmt);
 		if ((dnode->props.size_changed =
@@ -2548,6 +2550,12 @@
 	/* Resume snapshot origins after new snapshots */
 	dnode->activation_priority = 1;
 
+	/*
+	 * Don't resume the origin immediately in case it is a non-trivial 
+	 * target that must not be active more than once concurrently!
+	 */
+	origin_node->props.delay_resume_if_new = 1;
+
 	return 1;
 }
 




More information about the lvm-devel mailing list