[lvm-devel] LVM2 daemons/clvmd/clvmd-command.c lib/locking ...

zkabelac at sourceware.org zkabelac at sourceware.org
Wed Feb 2 13:34:01 UTC 2011


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac at sourceware.org	2011-02-02 13:34:01

Modified files:
	daemons/clvmd  : clvmd-command.c 
	lib/locking    : file_locking.c locking.c 

Log message:
	Revert wrong fix for nolock locking missing fs_unlock
	
	Patch was wrond and introduced recursive lock_vol
	Reverting it.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd-command.c.diff?cvsroot=lvm2&r1=1.50&r2=1.51
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/file_locking.c.diff?cvsroot=lvm2&r1=1.55&r2=1.56
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/locking/locking.c.diff?cvsroot=lvm2&r1=1.90&r2=1.91

--- LVM2/daemons/clvmd/clvmd-command.c	2011/01/31 19:52:41	1.50
+++ LVM2/daemons/clvmd/clvmd-command.c	2011/02/02 13:34:00	1.51
@@ -217,6 +217,7 @@
 	if (lkid == 0)
 	    return EINVAL;
 
+	lvm_do_fs_unlock(); /* Wait for devices */
 	status = sync_unlock(lockname, lkid);
 	if (status)
 	    status = errno;
--- LVM2/lib/locking/file_locking.c	2011/01/31 19:52:41	1.55
+++ LVM2/lib/locking/file_locking.c	2011/02/02 13:34:00	1.56
@@ -215,6 +215,7 @@
 		state = 'W';
 		break;
 	case LCK_UNLOCK:
+		fs_unlock(); /* Wait until devices are available */
 		return _release_lock(file, 1);
 	default:
 		log_error("Unrecognised lock type: %d", flags & LCK_TYPE_MASK);
--- LVM2/lib/locking/locking.c	2011/01/31 19:52:41	1.90
+++ LVM2/lib/locking/locking.c	2011/02/02 13:34:00	1.91
@@ -442,10 +442,6 @@
 		/* If LVM1 driver knows about the VG, it can't be accessed. */
 		if (!check_lvm1_vg_inactive(cmd, vol))
 			return_0;
-
-		/* Before unlocking VG wait until devices are available. */
-		if ((flags & LCK_TYPE_MASK) == LCK_UNLOCK)
-			sync_local_dev_names(cmd);
 		break;
 	case LCK_LV:
 		/* All LV locks are non-blocking. */




More information about the lvm-devel mailing list