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 */