Module Name:    src
Committed By:   hannken
Date:           Sat Mar 19 13:52:11 UTC 2022

Modified Files:
        src/sys/kern: vfs_vnode.c
        src/sys/miscfs/deadfs: dead_vfsops.c
        src/sys/miscfs/specfs: spec_vnops.c

Log Message:
Switch spec_vnodeop vector to real vnode locking, VV_LOCKSWORK now.


To generate a diff of this commit:
cvs rdiff -u -r1.137 -r1.138 src/sys/kern/vfs_vnode.c
cvs rdiff -u -r1.9 -r1.10 src/sys/miscfs/deadfs/dead_vfsops.c
cvs rdiff -u -r1.183 -r1.184 src/sys/miscfs/specfs/spec_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/vfs_vnode.c
diff -u src/sys/kern/vfs_vnode.c:1.137 src/sys/kern/vfs_vnode.c:1.138
--- src/sys/kern/vfs_vnode.c:1.137	Tue Mar 15 15:27:43 2022
+++ src/sys/kern/vfs_vnode.c	Sat Mar 19 13:52:11 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: vfs_vnode.c,v 1.137 2022/03/15 15:27:43 hannken Exp $	*/
+/*	$NetBSD: vfs_vnode.c,v 1.138 2022/03/19 13:52:11 hannken Exp $	*/
 
 /*-
  * Copyright (c) 1997-2011, 2019, 2020 The NetBSD Foundation, Inc.
@@ -148,7 +148,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.137 2022/03/15 15:27:43 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.138 2022/03/19 13:52:11 hannken Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_pax.h"
@@ -1993,8 +1993,7 @@ vcache_make_anon(vnode_t *vp)
 	/* Done with purge, change operations vector. */
 	mutex_enter(vp->v_interlock);
 	vp->v_op = spec_vnodeop_p;
-	vp->v_vflag |= VV_MPSAFE;
-	vp->v_vflag &= ~VV_LOCKSWORK;
+	vp->v_vflag |= VV_MPSAFE | VV_LOCKSWORK;
 	mutex_exit(vp->v_interlock);
 
 	/*

Index: src/sys/miscfs/deadfs/dead_vfsops.c
diff -u src/sys/miscfs/deadfs/dead_vfsops.c:1.9 src/sys/miscfs/deadfs/dead_vfsops.c:1.10
--- src/sys/miscfs/deadfs/dead_vfsops.c:1.9	Tue Jan  1 10:06:54 2019
+++ src/sys/miscfs/deadfs/dead_vfsops.c	Sat Mar 19 13:52:11 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: dead_vfsops.c,v 1.9 2019/01/01 10:06:54 hannken Exp $	*/
+/*	$NetBSD: dead_vfsops.c,v 1.10 2022/03/19 13:52:11 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dead_vfsops.c,v 1.9 2019/01/01 10:06:54 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dead_vfsops.c,v 1.10 2022/03/19 13:52:11 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -104,7 +104,7 @@ dead_newvnode(struct mount *mp, struct v
 	vp->v_tag = VT_NON;
 	vp->v_type = vap->va_type;
 	vp->v_op = spec_vnodeop_p;
-	vp->v_vflag |= VV_MPSAFE;
+	vp->v_vflag |= VV_MPSAFE | VV_LOCKSWORK;
 	uvm_vnp_setsize(vp, 0);
 	spec_node_init(vp, vap->va_rdev);
 

Index: src/sys/miscfs/specfs/spec_vnops.c
diff -u src/sys/miscfs/specfs/spec_vnops.c:1.183 src/sys/miscfs/specfs/spec_vnops.c:1.184
--- src/sys/miscfs/specfs/spec_vnops.c:1.183	Sun Jul 18 23:57:14 2021
+++ src/sys/miscfs/specfs/spec_vnops.c	Sat Mar 19 13:52:11 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: spec_vnops.c,v 1.183 2021/07/18 23:57:14 dholland Exp $	*/
+/*	$NetBSD: spec_vnops.c,v 1.184 2022/03/19 13:52:11 hannken Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.183 2021/07/18 23:57:14 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.184 2022/03/19 13:52:11 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/proc.h>
@@ -148,12 +148,12 @@ const struct vnodeopv_entry_desc spec_vn
 	{ &vop_abortop_desc, genfs_badop },		/* abortop */
 	{ &vop_inactive_desc, spec_inactive },		/* inactive */
 	{ &vop_reclaim_desc, spec_reclaim },		/* reclaim */
-	{ &vop_lock_desc, genfs_nolock },		/* lock */
-	{ &vop_unlock_desc, genfs_nounlock },		/* unlock */
+	{ &vop_lock_desc, genfs_lock },			/* lock */
+	{ &vop_unlock_desc, genfs_unlock },		/* unlock */
 	{ &vop_bmap_desc, spec_bmap },			/* bmap */
 	{ &vop_strategy_desc, spec_strategy },		/* strategy */
 	{ &vop_print_desc, spec_print },		/* print */
-	{ &vop_islocked_desc, genfs_noislocked },	/* islocked */
+	{ &vop_islocked_desc, genfs_islocked },		/* islocked */
 	{ &vop_pathconf_desc, spec_pathconf },		/* pathconf */
 	{ &vop_advlock_desc, spec_advlock },		/* advlock */
 	{ &vop_bwrite_desc, vn_bwrite },		/* bwrite */

Reply via email to