[lvm-devel] LVM2/lib/cache lvmcache.c

agk at sourceware.org agk at sourceware.org
Wed Jan 30 16:18:39 UTC 2008


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2008-01-30 16:18:38

Modified files:
	lib/cache      : lvmcache.c 

Log message:
	only read labels once between each lock event

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/cache/lvmcache.c.diff?cvsroot=lvm2&r1=1.36&r2=1.37

--- LVM2/lib/cache/lvmcache.c	2008/01/30 13:59:58	1.36
+++ LVM2/lib/cache/lvmcache.c	2008/01/30 16:18:37	1.37
@@ -225,6 +225,16 @@
 	if (info->status & CACHE_INVALID)
 		return 0;
 
+	/*
+	 * The caller must hold the VG lock to manipulate metadata.
+	 * In a cluster, remote nodes sometimes read metadata in the
+	 * knowledge that the controlling node is holding the lock.
+	 * So if the VG appears to be unlocked here, it should be safe
+	 * to use the cached value.
+	 */
+	if (info->vginfo && !vgname_is_locked(info->vginfo->vgname))
+		return 1;
+
 	if (!(info->status & CACHE_LOCKED))
 		return 0;
 




More information about the lvm-devel mailing list