[lvm-devel] LVM2/lib/metadata lv_manip.c

mbroz at sourceware.org mbroz at sourceware.org
Sat Jun 6 16:37:15 UTC 2009


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	mbroz at sourceware.org	2009-06-06 16:37:15

Modified files:
	lib/metadata   : lv_manip.c 

Log message:
	Suspend virtual origin before real snapshot.
	
	Because preload of table for snapshot can produce snapshot
	metadata (in kernel cow header) read.
	
	Code should suspend origin first to avoid possible deadlock
	when preloading (thus calling snapshot in-kernel constructor)
	for origin with suspended cow device.
	
	(fixes previous commit)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/lv_manip.c.diff?cvsroot=lvm2&r1=1.180&r2=1.181

--- LVM2/lib/metadata/lv_manip.c	2009/06/01 15:55:07	1.180
+++ LVM2/lib/metadata/lv_manip.c	2009/06/06 16:37:15	1.181
@@ -1806,7 +1806,7 @@
 
 	/* rename active virtual origin too */
 	if (lv_is_cow(lv) && lv_is_virtual_origin(lvl2.lv = origin_from_cow(lv)))
-		dm_list_add(&lvs_changed, &lvl2.list);
+		dm_list_add_h(&lvs_changed, &lvl2.list);
 
 	log_verbose("Writing out updated volume group");
 	if (!vg_write(vg))




More information about the lvm-devel mailing list