Module Name:    src
Committed By:   ad
Date:           Sat Jan 18 17:12:59 UTC 2020

Modified Files:
        src/sys/kern [ad-namecache]: vnode_if.sh
        src/sys/miscfs/genfs [ad-namecache]: genfs_vnops.c

Log Message:
Allow VOP_LOCK(LK_NONE).


To generate a diff of this commit:
cvs rdiff -u -r1.68 -r1.68.2.1 src/sys/kern/vnode_if.sh
cvs rdiff -u -r1.200 -r1.200.2.1 src/sys/miscfs/genfs/genfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/kern/vnode_if.sh
diff -u src/sys/kern/vnode_if.sh:1.68 src/sys/kern/vnode_if.sh:1.68.2.1
--- src/sys/kern/vnode_if.sh:1.68	Sun Dec  1 13:56:29 2019
+++ src/sys/kern/vnode_if.sh	Sat Jan 18 17:12:59 2020
@@ -29,7 +29,7 @@ copyright="\
  * SUCH DAMAGE.
  */
 "
-SCRIPT_ID='$NetBSD: vnode_if.sh,v 1.68 2019/12/01 13:56:29 ad Exp $'
+SCRIPT_ID='$NetBSD: vnode_if.sh,v 1.68.2.1 2020/01/18 17:12:59 ad Exp $'
 
 # Script to produce VFS front-end sugar.
 #
@@ -481,7 +481,7 @@ function bodynorm() {
 	}
 	if (fstrans == "LOCK")
 		printf("\terror = vop_pre(%s, &mp, &mpsafe, %s);\n",
-			argname[0], "(flags & (LK_UPGRADE|LK_DOWNGRADE) ? FST_NO : (flags & LK_NOWAIT ? FST_TRY : FST_YES))");
+			argname[0], "(!(flags & (LK_SHARED|LK_EXCLUSIVE)) ? FST_NO : (flags & LK_NOWAIT ? FST_TRY : FST_YES))");
 	else if (fstrans == "UNLOCK")
 		printf("\terror = vop_pre(%s, &mp, &mpsafe, FST_%s);\n",
 			argname[0], "NO");

Index: src/sys/miscfs/genfs/genfs_vnops.c
diff -u src/sys/miscfs/genfs/genfs_vnops.c:1.200 src/sys/miscfs/genfs/genfs_vnops.c:1.200.2.1
--- src/sys/miscfs/genfs/genfs_vnops.c:1.200	Sun Dec  1 13:56:29 2019
+++ src/sys/miscfs/genfs/genfs_vnops.c	Sat Jan 18 17:12:59 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfs_vnops.c,v 1.200 2019/12/01 13:56:29 ad Exp $	*/
+/*	$NetBSD: genfs_vnops.c,v 1.200.2.1 2020/01/18 17:12:59 ad Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -57,7 +57,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.200 2019/12/01 13:56:29 ad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genfs_vnops.c,v 1.200.2.1 2020/01/18 17:12:59 ad Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -301,7 +301,7 @@ genfs_deadlock(void *v)
 			rw_exit(vip->vi_lock);
 			rw_enter(vip->vi_lock, RW_WRITER);
 		}
-	} else {
+	} else if ((flags & (LK_EXCLUSIVE | LK_SHARED)) != 0) {
 		op = (ISSET(flags, LK_EXCLUSIVE) ? RW_WRITER : RW_READER);
 		if (ISSET(flags, LK_NOWAIT)) {
 			if (!rw_tryenter(vip->vi_lock, op))
@@ -355,7 +355,7 @@ genfs_lock(void *v)
 			rw_exit(vip->vi_lock);
 			rw_enter(vip->vi_lock, RW_WRITER);
 		}
-	} else {
+	} else if ((flags & (LK_EXCLUSIVE | LK_SHARED)) != 0) {
 		op = (ISSET(flags, LK_EXCLUSIVE) ? RW_WRITER : RW_READER);
 		if (ISSET(flags, LK_NOWAIT)) {
 			if (!rw_tryenter(vip->vi_lock, op))

Reply via email to