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