Module Name: src
Committed By: riastradh
Date: Tue Apr 11 14:25:02 UTC 2017
Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c
src/lib/libp2k: p2k.c
src/share/man/man9: vnodeops.9
src/sys/coda: coda_vnops.c
src/sys/fs/adosfs: advnops.c
src/sys/fs/cd9660: cd9660_node.c
src/sys/fs/efs: efs_vnops.c
src/sys/fs/filecorefs: filecore_node.c
src/sys/fs/msdosfs: msdosfs_denode.c
src/sys/fs/nilfs: nilfs_vnops.c
src/sys/fs/ntfs: ntfs_vnops.c
src/sys/fs/ptyfs: ptyfs_vnops.c
src/sys/fs/puffs: puffs_vnops.c
src/sys/fs/smbfs: smbfs_node.c
src/sys/fs/sysvbfs: sysvbfs_vnops.c
src/sys/fs/tmpfs: tmpfs_vnops.c
src/sys/fs/udf: udf_vnops.c
src/sys/fs/union: union_vnops.c
src/sys/fs/unionfs: unionfs_vnops.c
src/sys/fs/v7fs: v7fs_vnops.c
src/sys/kern: vfs_vnode.c vnode_if.src
src/sys/miscfs/deadfs: dead_vnops.c
src/sys/miscfs/fdesc: fdesc_vnops.c
src/sys/miscfs/fifofs: fifo_vnops.c
src/sys/miscfs/genfs: layer_vnops.c
src/sys/miscfs/kernfs: kernfs_vnops.c
src/sys/miscfs/procfs: procfs_vnops.c
src/sys/miscfs/specfs: spec_vnops.c
src/sys/nfs: nfs_node.c
src/sys/rump/librump/rumpvfs: rumpfs.c
src/sys/ufs/chfs: chfs_vnops.c
src/sys/ufs/ext2fs: ext2fs_inode.c
src/sys/ufs/lfs: lfs_vnops.c ulfs_inode.c
src/sys/ufs/mfs: mfs_vnops.c
src/sys/ufs/ufs: ufs_inode.c
Log Message:
Make VOP_INACTIVE preserve vnode lock on return.
Discussed on tech-kern:
https://mail-index.netbsd.org/tech-kern/2017/04/01/msg021751.html
Ride 7.99.68, a bumpy bus of incremental vfs improvements!
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
cvs rdiff -u -r1.68 -r1.69 src/lib/libp2k/p2k.c
cvs rdiff -u -r1.97 -r1.98 src/share/man/man9/vnodeops.9
cvs rdiff -u -r1.103 -r1.104 src/sys/coda/coda_vnops.c
cvs rdiff -u -r1.48 -r1.49 src/sys/fs/adosfs/advnops.c
cvs rdiff -u -r1.35 -r1.36 src/sys/fs/cd9660/cd9660_node.c
cvs rdiff -u -r1.36 -r1.37 src/sys/fs/efs/efs_vnops.c
cvs rdiff -u -r1.28 -r1.29 src/sys/fs/filecorefs/filecore_node.c
cvs rdiff -u -r1.53 -r1.54 src/sys/fs/msdosfs/msdosfs_denode.c
cvs rdiff -u -r1.33 -r1.34 src/sys/fs/nilfs/nilfs_vnops.c
cvs rdiff -u -r1.60 -r1.61 src/sys/fs/ntfs/ntfs_vnops.c
cvs rdiff -u -r1.52 -r1.53 src/sys/fs/ptyfs/ptyfs_vnops.c
cvs rdiff -u -r1.208 -r1.209 src/sys/fs/puffs/puffs_vnops.c
cvs rdiff -u -r1.54 -r1.55 src/sys/fs/smbfs/smbfs_node.c
cvs rdiff -u -r1.60 -r1.61 src/sys/fs/sysvbfs/sysvbfs_vnops.c
cvs rdiff -u -r1.130 -r1.131 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -u -r1.102 -r1.103 src/sys/fs/udf/udf_vnops.c
cvs rdiff -u -r1.64 -r1.65 src/sys/fs/union/union_vnops.c
cvs rdiff -u -r1.9 -r1.10 src/sys/fs/unionfs/unionfs_vnops.c
cvs rdiff -u -r1.23 -r1.24 src/sys/fs/v7fs/v7fs_vnops.c
cvs rdiff -u -r1.81 -r1.82 src/sys/kern/vfs_vnode.c
cvs rdiff -u -r1.70 -r1.71 src/sys/kern/vnode_if.src
cvs rdiff -u -r1.59 -r1.60 src/sys/miscfs/deadfs/dead_vnops.c
cvs rdiff -u -r1.127 -r1.128 src/sys/miscfs/fdesc/fdesc_vnops.c
cvs rdiff -u -r1.77 -r1.78 src/sys/miscfs/fifofs/fifo_vnops.c
cvs rdiff -u -r1.61 -r1.62 src/sys/miscfs/genfs/layer_vnops.c
cvs rdiff -u -r1.156 -r1.157 src/sys/miscfs/kernfs/kernfs_vnops.c
cvs rdiff -u -r1.195 -r1.196 src/sys/miscfs/procfs/procfs_vnops.c
cvs rdiff -u -r1.169 -r1.170 src/sys/miscfs/specfs/spec_vnops.c
cvs rdiff -u -r1.119 -r1.120 src/sys/nfs/nfs_node.c
cvs rdiff -u -r1.145 -r1.146 src/sys/rump/librump/rumpvfs/rumpfs.c
cvs rdiff -u -r1.30 -r1.31 src/sys/ufs/chfs/chfs_vnops.c
cvs rdiff -u -r1.86 -r1.87 src/sys/ufs/ext2fs/ext2fs_inode.c
cvs rdiff -u -r1.312 -r1.313 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -u -r1.17 -r1.18 src/sys/ufs/lfs/ulfs_inode.c
cvs rdiff -u -r1.56 -r1.57 src/sys/ufs/mfs/mfs_vnops.c
cvs rdiff -u -r1.99 -r1.100 src/sys/ufs/ufs/ufs_inode.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.23 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.24
--- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c:1.23 Mon Apr 20 23:03:07 2015
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Tue Apr 11 14:25:01 2017
@@ -5533,7 +5533,7 @@ zfs_netbsd_link(void *v)
static int
zfs_netbsd_inactive(void *v)
{
- struct vop_inactive_args *ap = v;
+ struct vop_inactive_v2_args *ap = v;
vnode_t *vp = ap->a_vp;
znode_t *zp = VTOZ(vp);
@@ -5543,7 +5543,7 @@ zfs_netbsd_inactive(void *v)
* vrele() will call us again.
*/
*ap->a_recycle = (zp->z_unlinked != 0);
- VOP_UNLOCK(vp);
+
return (0);
}
Index: src/lib/libp2k/p2k.c
diff -u src/lib/libp2k/p2k.c:1.68 src/lib/libp2k/p2k.c:1.69
--- src/lib/libp2k/p2k.c:1.68 Mon Jan 25 11:45:58 2016
+++ src/lib/libp2k/p2k.c Tue Apr 11 14:25:02 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: p2k.c,v 1.68 2016/01/25 11:45:58 pooka Exp $ */
+/* $NetBSD: p2k.c,v 1.69 2017/04/11 14:25:02 riastradh Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 Antti Kantee. All Rights Reserved.
@@ -1400,6 +1400,7 @@ p2k_node_inactive(struct puffs_usermount
*/
RUMP_VOP_LOCK(vp, LK_EXCLUSIVE);
rv = RUMP_VOP_INACTIVE(vp, &recycle);
+ RUMP_VOP_UNLOCK(vp);
if (recycle) {
puffs_setback(puffs_cc_getcc(pu), PUFFS_SETBACK_NOREF_N1);
rump_pub_vp_rele(p2n->p2n_vp);
Index: src/share/man/man9/vnodeops.9
diff -u src/share/man/man9/vnodeops.9:1.97 src/share/man/man9/vnodeops.9:1.98
--- src/share/man/man9/vnodeops.9:1.97 Mon Jan 25 18:20:16 2016
+++ src/share/man/man9/vnodeops.9 Tue Apr 11 14:25:02 2017
@@ -1,4 +1,4 @@
-.\" $NetBSD: vnodeops.9,v 1.97 2016/01/25 18:20:16 christos Exp $
+.\" $NetBSD: vnodeops.9,v 1.98 2017/04/11 14:25:02 riastradh Exp $
.\"
.\" Copyright (c) 2001, 2005, 2006 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd January 25, 2016
+.Dd April 11, 2017
.Dt VNODEOPS 9
.Os
.Sh NAME
@@ -1102,7 +1102,7 @@ If the operation is successful zero is r
appropriate error code is returned.
The vnode
.Fa vp
-must be locked on entry, and will be unlocked on return.
+must be locked on entry, and will remain locked on return.
.It Fn VOP_RECLAIM "vp"
Reclaim the vnode for another file system.
.Fn VOP_RECLAIM
Index: src/sys/coda/coda_vnops.c
diff -u src/sys/coda/coda_vnops.c:1.103 src/sys/coda/coda_vnops.c:1.104
--- src/sys/coda/coda_vnops.c:1.103 Sat Aug 20 12:37:06 2016
+++ src/sys/coda/coda_vnops.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: coda_vnops.c,v 1.103 2016/08/20 12:37:06 hannken Exp $ */
+/* $NetBSD: coda_vnops.c,v 1.104 2017/04/11 14:24:59 riastradh Exp $ */
/*
*
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.103 2016/08/20 12:37:06 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.104 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -827,7 +827,7 @@ int
coda_inactive(void *v)
{
/* true args */
- struct vop_inactive_args *ap = v;
+ struct vop_inactive_v2_args *ap = v;
vnode_t *vp = ap->a_vp;
struct cnode *cp = VTOC(vp);
kauth_cred_t cred __unused = NULL;
@@ -837,7 +837,6 @@ coda_inactive(void *v)
if (IS_CTL_VP(vp)) {
MARK_INT_SAT(CODA_INACTIVE_STATS);
- VOP_UNLOCK(vp);
return 0;
}
@@ -857,7 +856,6 @@ coda_inactive(void *v)
printf("%s: %p ovp != NULL\n", __func__, vp);
#endif
/* XXX Do we need to VOP_CLOSE container vnodes? */
- VOP_UNLOCK(vp);
if (!IS_UNMOUNTING(cp))
*ap->a_recycle = true;
Index: src/sys/fs/adosfs/advnops.c
diff -u src/sys/fs/adosfs/advnops.c:1.48 src/sys/fs/adosfs/advnops.c:1.49
--- src/sys/fs/adosfs/advnops.c:1.48 Sat Aug 20 12:37:06 2016
+++ src/sys/fs/adosfs/advnops.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: advnops.c,v 1.48 2016/08/20 12:37:06 hannken Exp $ */
+/* $NetBSD: advnops.c,v 1.49 2017/04/11 14:24:59 riastradh Exp $ */
/*
* Copyright (c) 1994 Christian E. Hopps
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.48 2016/08/20 12:37:06 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.49 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -843,15 +843,13 @@ adosfs_readlink(void *v)
int
adosfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *sp = v;
- struct vnode *vp = sp->a_vp;
#ifdef ADOSFS_DIAGNOSTIC
advopprint(sp);
#endif
- VOP_UNLOCK(vp);
/* XXX this needs to check if file was deleted */
*sp->a_recycle = true;
Index: src/sys/fs/cd9660/cd9660_node.c
diff -u src/sys/fs/cd9660/cd9660_node.c:1.35 src/sys/fs/cd9660/cd9660_node.c:1.36
--- src/sys/fs/cd9660/cd9660_node.c:1.35 Sat Aug 20 12:37:06 2016
+++ src/sys/fs/cd9660/cd9660_node.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: cd9660_node.c,v 1.35 2016/08/20 12:37:06 hannken Exp $ */
+/* $NetBSD: cd9660_node.c,v 1.36 2017/04/11 14:24:59 riastradh Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1994
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_node.c,v 1.35 2016/08/20 12:37:06 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_node.c,v 1.36 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -102,7 +102,7 @@ cd9660_done(void)
int
cd9660_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -116,7 +116,6 @@ cd9660_inactive(void *v)
*/
ip->i_flag = 0;
*ap->a_recycle = (ip->inode.iso_mode == 0);
- VOP_UNLOCK(vp);
return error;
}
Index: src/sys/fs/efs/efs_vnops.c
diff -u src/sys/fs/efs/efs_vnops.c:1.36 src/sys/fs/efs/efs_vnops.c:1.37
--- src/sys/fs/efs/efs_vnops.c:1.36 Sat Aug 20 12:37:07 2016
+++ src/sys/fs/efs/efs_vnops.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: efs_vnops.c,v 1.36 2016/08/20 12:37:07 hannken Exp $ */
+/* $NetBSD: efs_vnops.c,v 1.37 2017/04/11 14:24:59 riastradh Exp $ */
/*
* Copyright (c) 2006 Stephen M. Rumble <[email protected]>
@@ -17,7 +17,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.36 2016/08/20 12:37:07 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: efs_vnops.c,v 1.37 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -560,7 +560,7 @@ efs_readlink(void *v)
static int
efs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
const struct vnodeop_desc *a_desc;
struct vnode *a_vp;
bool *a_recycle
@@ -568,7 +568,6 @@ efs_inactive(void *v)
struct efs_inode *eip = EFS_VTOI(ap->a_vp);
*ap->a_recycle = (eip->ei_mode == 0);
- VOP_UNLOCK(ap->a_vp);
return (0);
}
Index: src/sys/fs/filecorefs/filecore_node.c
diff -u src/sys/fs/filecorefs/filecore_node.c:1.28 src/sys/fs/filecorefs/filecore_node.c:1.29
--- src/sys/fs/filecorefs/filecore_node.c:1.28 Sat Aug 20 12:37:07 2016
+++ src/sys/fs/filecorefs/filecore_node.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: filecore_node.c,v 1.28 2016/08/20 12:37:07 hannken Exp $ */
+/* $NetBSD: filecore_node.c,v 1.29 2017/04/11 14:24:59 riastradh Exp $ */
/*-
* Copyright (c) 1982, 1986, 1989, 1994
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: filecore_node.c,v 1.28 2016/08/20 12:37:07 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: filecore_node.c,v 1.29 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -213,7 +213,7 @@ filecore_loadvnode(struct mount *mp, str
int
filecore_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -227,7 +227,7 @@ filecore_inactive(void *v)
*/
ip->i_flag = 0;
*ap->a_recycle = (filecore_staleinode(ip) != 0);
- VOP_UNLOCK(vp);
+
return error;
}
Index: src/sys/fs/msdosfs/msdosfs_denode.c
diff -u src/sys/fs/msdosfs/msdosfs_denode.c:1.53 src/sys/fs/msdosfs/msdosfs_denode.c:1.54
--- src/sys/fs/msdosfs/msdosfs_denode.c:1.53 Wed Mar 1 10:41:28 2017
+++ src/sys/fs/msdosfs/msdosfs_denode.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: msdosfs_denode.c,v 1.53 2017/03/01 10:41:28 hannken Exp $ */
+/* $NetBSD: msdosfs_denode.c,v 1.54 2017/04/11 14:24:59 riastradh Exp $ */
/*-
* Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank.
@@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: msdosfs_denode.c,v 1.53 2017/03/01 10:41:28 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: msdosfs_denode.c,v 1.54 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -569,7 +569,7 @@ msdosfs_reclaim(void *v)
int
msdosfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -616,7 +616,7 @@ out:
vp->v_usecount, dep->de_Name[0]);
#endif
*ap->a_recycle = (dep->de_Name[0] == SLOT_DELETED);
- VOP_UNLOCK(vp);
+
return (error);
}
Index: src/sys/fs/nilfs/nilfs_vnops.c
diff -u src/sys/fs/nilfs/nilfs_vnops.c:1.33 src/sys/fs/nilfs/nilfs_vnops.c:1.34
--- src/sys/fs/nilfs/nilfs_vnops.c:1.33 Sat Aug 20 12:37:07 2016
+++ src/sys/fs/nilfs/nilfs_vnops.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: nilfs_vnops.c,v 1.33 2016/08/20 12:37:07 hannken Exp $ */
+/* $NetBSD: nilfs_vnops.c,v 1.34 2017/04/11 14:24:59 riastradh Exp $ */
/*
* Copyright (c) 2008, 2009 Reinoud Zandijk
@@ -28,7 +28,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.33 2016/08/20 12:37:07 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.34 2017/04/11 14:24:59 riastradh Exp $");
#endif /* not lint */
@@ -70,7 +70,7 @@ extern int prtactive;
int
nilfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -90,7 +90,6 @@ nilfs_inactive(void *v)
* referenced anymore in a directory we ought to free up the resources
* on disc if applicable.
*/
- VOP_UNLOCK(vp);
return 0;
}
Index: src/sys/fs/ntfs/ntfs_vnops.c
diff -u src/sys/fs/ntfs/ntfs_vnops.c:1.60 src/sys/fs/ntfs/ntfs_vnops.c:1.61
--- src/sys/fs/ntfs/ntfs_vnops.c:1.60 Sat Aug 20 12:37:07 2016
+++ src/sys/fs/ntfs/ntfs_vnops.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ntfs_vnops.c,v 1.60 2016/08/20 12:37:07 hannken Exp $ */
+/* $NetBSD: ntfs_vnops.c,v 1.61 2017/04/11 14:24:59 riastradh Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.60 2016/08/20 12:37:07 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ntfs_vnops.c,v 1.61 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -205,10 +205,11 @@ ntfs_getattr(void *v)
int
ntfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
+ bool *a_recycle;
} */ *ap = v;
- struct vnode *vp = ap->a_vp;
+ struct vnode *vp __unused = ap->a_vp;
#ifdef NTFS_DEBUG
struct ntnode *ip = VTONT(vp);
#endif
@@ -216,8 +217,6 @@ ntfs_inactive(void *v)
dprintf(("ntfs_inactive: vnode: %p, ntnode: %llu\n", vp,
(unsigned long long)ip->i_number));
- VOP_UNLOCK(vp);
-
/* XXX since we don't support any filesystem changes
* right now, nothing more needs to be done
*/
Index: src/sys/fs/ptyfs/ptyfs_vnops.c
diff -u src/sys/fs/ptyfs/ptyfs_vnops.c:1.52 src/sys/fs/ptyfs/ptyfs_vnops.c:1.53
--- src/sys/fs/ptyfs/ptyfs_vnops.c:1.52 Sat Aug 20 12:37:07 2016
+++ src/sys/fs/ptyfs/ptyfs_vnops.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ptyfs_vnops.c,v 1.52 2016/08/20 12:37:07 hannken Exp $ */
+/* $NetBSD: ptyfs_vnops.c,v 1.53 2017/04/11 14:24:59 riastradh Exp $ */
/*
* Copyright (c) 1993, 1995
@@ -76,7 +76,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.52 2016/08/20 12:37:07 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ptyfs_vnops.c,v 1.53 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -231,7 +231,7 @@ ptyfs_reclaim(void *v)
int
ptyfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -240,7 +240,7 @@ ptyfs_inactive(void *v)
if (ptyfs->ptyfs_type == PTYFSptc)
ptyfs_clr_active(vp->v_mount, ptyfs->ptyfs_pty);
- VOP_UNLOCK(vp);
+
return 0;
}
Index: src/sys/fs/puffs/puffs_vnops.c
diff -u src/sys/fs/puffs/puffs_vnops.c:1.208 src/sys/fs/puffs/puffs_vnops.c:1.209
--- src/sys/fs/puffs/puffs_vnops.c:1.208 Sat Apr 8 08:49:44 2017
+++ src/sys/fs/puffs/puffs_vnops.c Tue Apr 11 14:24:59 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_vnops.c,v 1.208 2017/04/08 08:49:44 hannken Exp $ */
+/* $NetBSD: puffs_vnops.c,v 1.209 2017/04/11 14:24:59 riastradh Exp $ */
/*
* Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.208 2017/04/08 08:49:44 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.209 2017/04/11 14:24:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@@ -1311,7 +1311,7 @@ callinactive(struct puffs_mount *pmp, pu
int
puffs_vnop_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
const struct vnodeop_desc *a_desc;
struct vnode *a_vp;
} */ *ap = v;
@@ -1329,7 +1329,6 @@ puffs_vnop_inactive(void *v)
* cookie was stall and the node likely already reclaimed.
*/
if (vp->v_type == VNON) {
- VOP_UNLOCK(vp);
return 0;
}
@@ -1415,7 +1414,6 @@ puffs_vnop_inactive(void *v)
*ap->a_recycle = recycle;
mutex_exit(&pnode->pn_sizemtx);
- VOP_UNLOCK(vp);
return 0;
}
Index: src/sys/fs/smbfs/smbfs_node.c
diff -u src/sys/fs/smbfs/smbfs_node.c:1.54 src/sys/fs/smbfs/smbfs_node.c:1.55
--- src/sys/fs/smbfs/smbfs_node.c:1.54 Sat Aug 20 12:37:08 2016
+++ src/sys/fs/smbfs/smbfs_node.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: smbfs_node.c,v 1.54 2016/08/20 12:37:08 hannken Exp $ */
+/* $NetBSD: smbfs_node.c,v 1.55 2017/04/11 14:25:00 riastradh Exp $ */
/*
* Copyright (c) 2000-2001 Boris Popov
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: smbfs_node.c,v 1.54 2016/08/20 12:37:08 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: smbfs_node.c,v 1.55 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -259,7 +259,7 @@ smbfs_reclaim(void *v)
int
smbfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -289,7 +289,6 @@ smbfs_inactive(void *v)
smbfs_attr_cacheremove(vp);
}
*ap->a_recycle = ((vp->v_type == VNON) || (np->n_flag & NGONE) != 0);
- VOP_UNLOCK(vp);
return (0);
}
Index: src/sys/fs/sysvbfs/sysvbfs_vnops.c
diff -u src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.60 src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.61
--- src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.60 Sat Aug 20 12:37:08 2016
+++ src/sys/fs/sysvbfs/sysvbfs_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: sysvbfs_vnops.c,v 1.60 2016/08/20 12:37:08 hannken Exp $ */
+/* $NetBSD: sysvbfs_vnops.c,v 1.61 2017/04/11 14:25:00 riastradh Exp $ */
/*-
* Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.60 2016/08/20 12:37:08 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.61 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -676,7 +676,7 @@ sysvbfs_readdir(void *v)
int
sysvbfs_inactive(void *arg)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *a = arg;
@@ -688,7 +688,6 @@ sysvbfs_inactive(void *arg)
*a->a_recycle = true;
else
*a->a_recycle = false;
- VOP_UNLOCK(v);
return 0;
}
Index: src/sys/fs/tmpfs/tmpfs_vnops.c
diff -u src/sys/fs/tmpfs/tmpfs_vnops.c:1.130 src/sys/fs/tmpfs/tmpfs_vnops.c:1.131
--- src/sys/fs/tmpfs/tmpfs_vnops.c:1.130 Thu Mar 30 09:09:26 2017
+++ src/sys/fs/tmpfs/tmpfs_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: tmpfs_vnops.c,v 1.130 2017/03/30 09:09:26 hannken Exp $ */
+/* $NetBSD: tmpfs_vnops.c,v 1.131 2017/04/11 14:25:00 riastradh Exp $ */
/*
* Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.130 2017/03/30 09:09:26 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.131 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/dirent.h>
@@ -1035,7 +1035,7 @@ tmpfs_readlink(void *v)
int
tmpfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -1054,7 +1054,6 @@ tmpfs_inactive(void *v)
} else {
*ap->a_recycle = false;
}
- VOP_UNLOCK(vp);
return 0;
}
Index: src/sys/fs/udf/udf_vnops.c
diff -u src/sys/fs/udf/udf_vnops.c:1.102 src/sys/fs/udf/udf_vnops.c:1.103
--- src/sys/fs/udf/udf_vnops.c:1.102 Sat Aug 20 12:37:08 2016
+++ src/sys/fs/udf/udf_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_vnops.c,v 1.102 2016/08/20 12:37:08 hannken Exp $ */
+/* $NetBSD: udf_vnops.c,v 1.103 2017/04/11 14:25:00 riastradh Exp $ */
/*
* Copyright (c) 2006, 2008 Reinoud Zandijk
@@ -32,7 +32,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.102 2016/08/20 12:37:08 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.103 2017/04/11 14:25:00 riastradh Exp $");
#endif /* not lint */
@@ -80,7 +80,7 @@ extern int prtactive;
int
udf_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -92,7 +92,6 @@ udf_inactive(void *v)
if (udf_node == NULL) {
DPRINTF(NODE, ("udf_inactive: inactive NULL UDF node\n"));
- VOP_UNLOCK(vp);
return 0;
}
@@ -115,14 +114,12 @@ udf_inactive(void *v)
*ap->a_recycle = false;
if ((refcnt == 0) && ((vp->v_vflag & VV_SYSTEM) == 0)) {
*ap->a_recycle = true;
- VOP_UNLOCK(vp);
return 0;
}
/* write out its node */
if (udf_node->i_flags & (IN_CHANGE | IN_UPDATE | IN_MODIFIED))
udf_update(vp, NULL, NULL, NULL, 0);
- VOP_UNLOCK(vp);
return 0;
}
Index: src/sys/fs/union/union_vnops.c
diff -u src/sys/fs/union/union_vnops.c:1.64 src/sys/fs/union/union_vnops.c:1.65
--- src/sys/fs/union/union_vnops.c:1.64 Mon Mar 6 10:08:49 2017
+++ src/sys/fs/union/union_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: union_vnops.c,v 1.64 2017/03/06 10:08:49 hannken Exp $ */
+/* $NetBSD: union_vnops.c,v 1.65 2017/04/11 14:25:00 riastradh Exp $ */
/*
* Copyright (c) 1992, 1993, 1994, 1995
@@ -72,7 +72,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: union_vnops.c,v 1.64 2017/03/06 10:08:49 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: union_vnops.c,v 1.65 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1558,7 +1558,7 @@ union_abortop(void *v)
int
union_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
const struct vnodeop_desc *a_desc;
struct vnode *a_vp;
bool *a_recycle;
@@ -1588,7 +1588,6 @@ union_inactive(void *v)
}
*ap->a_recycle = ((un->un_cflags & UN_CACHED) == 0);
- VOP_UNLOCK(vp);
return (0);
}
Index: src/sys/fs/unionfs/unionfs_vnops.c
diff -u src/sys/fs/unionfs/unionfs_vnops.c:1.9 src/sys/fs/unionfs/unionfs_vnops.c:1.10
--- src/sys/fs/unionfs/unionfs_vnops.c:1.9 Mon Apr 20 23:03:08 2015
+++ src/sys/fs/unionfs/unionfs_vnops.c Tue Apr 11 14:25:00 2017
@@ -1466,9 +1466,8 @@ unionfs_readlink(void *v)
static int
unionfs_inactive(void *v)
{
- struct vop_inactive_args *ap = v;
+ struct vop_inactive_v2_args *ap = v;
*ap->a_recycle = true;
- VOP_UNLOCK(ap->a_vp);
return (0);
}
Index: src/sys/fs/v7fs/v7fs_vnops.c
diff -u src/sys/fs/v7fs/v7fs_vnops.c:1.23 src/sys/fs/v7fs/v7fs_vnops.c:1.24
--- src/sys/fs/v7fs/v7fs_vnops.c:1.23 Sat Apr 8 08:51:02 2017
+++ src/sys/fs/v7fs/v7fs_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: v7fs_vnops.c,v 1.23 2017/04/08 08:51:02 hannken Exp $ */
+/* $NetBSD: v7fs_vnops.c,v 1.24 2017/04/11 14:25:00 riastradh Exp $ */
/*-
* Copyright (c) 2004, 2011 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.23 2017/04/08 08:51:02 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.24 2017/04/11 14:25:00 riastradh Exp $");
#if defined _KERNEL_OPT
#include "opt_v7fs.h"
#endif
@@ -1010,7 +1010,7 @@ v7fs_readdir(void *v)
int
v7fs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *a = v;
@@ -1026,8 +1026,6 @@ v7fs_inactive(void *v)
*a->a_recycle = true;
}
- VOP_UNLOCK(vp);
-
return 0;
}
Index: src/sys/kern/vfs_vnode.c
diff -u src/sys/kern/vfs_vnode.c:1.81 src/sys/kern/vfs_vnode.c:1.82
--- src/sys/kern/vfs_vnode.c:1.81 Thu Mar 30 09:16:52 2017
+++ src/sys/kern/vfs_vnode.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_vnode.c,v 1.81 2017/03/30 09:16:52 hannken Exp $ */
+/* $NetBSD: vfs_vnode.c,v 1.82 2017/04/11 14:25:00 riastradh Exp $ */
/*-
* Copyright (c) 1997-2011 The NetBSD Foundation, Inc.
@@ -156,7 +156,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.81 2017/03/30 09:16:52 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.82 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -761,10 +761,11 @@ vrelel(vnode_t *vp, int flags)
* the described file has been deleted, then recycle
* the vnode.
*
- * Note that VOP_INACTIVE() will drop the vnode lock.
+ * Note that VOP_INACTIVE() will not drop the vnode lock.
*/
recycle = false;
VOP_INACTIVE(vp, &recycle);
+ VOP_UNLOCK(vp);
if (recycle) {
/* vcache_reclaim() below will drop the lock. */
if (vn_lock(vp, LK_EXCLUSIVE) != 0)
@@ -1553,9 +1554,10 @@ vcache_reclaim(vnode_t *vp)
/*
* Disassociate the underlying file system from the vnode.
- * Note that the VOP_INACTIVE will unlock the vnode.
+ * Note that the VOP_INACTIVE will not unlock the vnode.
*/
VOP_INACTIVE(vp, &recycle);
+ VOP_UNLOCK(vp);
if (VOP_RECLAIM(vp)) {
vnpanic(vp, "%s: cannot reclaim", __func__);
}
Index: src/sys/kern/vnode_if.src
diff -u src/sys/kern/vnode_if.src:1.70 src/sys/kern/vnode_if.src:1.71
--- src/sys/kern/vnode_if.src:1.70 Wed Feb 22 09:45:51 2017
+++ src/sys/kern/vnode_if.src Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-# $NetBSD: vnode_if.src,v 1.70 2017/02/22 09:45:51 hannken Exp $
+# $NetBSD: vnode_if.src,v 1.71 2017/04/11 14:25:00 riastradh Exp $
#
# Copyright (c) 1992, 1993
# The Regents of the University of California. All rights reserved.
@@ -384,10 +384,11 @@ vop_abortop {
};
#
-#% inactive vp L U U
+#% inactive vp L L L
#
vop_inactive {
- IN LOCKED=YES WILLUNLOCK struct vnode *vp;
+ VERSION 2
+ IN LOCKED=YES struct vnode *vp;
INOUT bool *recycle;
};
Index: src/sys/miscfs/deadfs/dead_vnops.c
diff -u src/sys/miscfs/deadfs/dead_vnops.c:1.59 src/sys/miscfs/deadfs/dead_vnops.c:1.60
--- src/sys/miscfs/deadfs/dead_vnops.c:1.59 Mon Apr 20 23:30:58 2015
+++ src/sys/miscfs/deadfs/dead_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: dead_vnops.c,v 1.59 2015/04/20 23:30:58 riastradh Exp $ */
+/* $NetBSD: dead_vnops.c,v 1.60 2017/04/11 14:25:00 riastradh Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.59 2015/04/20 23:30:58 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.60 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -301,13 +301,12 @@ dead_rmdir(void *v)
int
dead_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
*ap->a_recycle = false;
- VOP_UNLOCK(ap->a_vp);
return 0;
}
Index: src/sys/miscfs/fdesc/fdesc_vnops.c
diff -u src/sys/miscfs/fdesc/fdesc_vnops.c:1.127 src/sys/miscfs/fdesc/fdesc_vnops.c:1.128
--- src/sys/miscfs/fdesc/fdesc_vnops.c:1.127 Sat Aug 20 12:37:08 2016
+++ src/sys/miscfs/fdesc/fdesc_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: fdesc_vnops.c,v 1.127 2016/08/20 12:37:08 hannken Exp $ */
+/* $NetBSD: fdesc_vnops.c,v 1.128 2017/04/11 14:25:00 riastradh Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.127 2016/08/20 12:37:08 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.128 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -836,7 +836,7 @@ fdesc_kqfilter(void *v)
int
fdesc_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
} */ *ap = v;
struct vnode *vp = ap->a_vp;
@@ -848,7 +848,7 @@ fdesc_inactive(void *v)
*/
if (fd->fd_type == Fctty || fd->fd_type == Fdesc)
vp->v_type = VNON;
- VOP_UNLOCK(vp);
+
return (0);
}
Index: src/sys/miscfs/fifofs/fifo_vnops.c
diff -u src/sys/miscfs/fifofs/fifo_vnops.c:1.77 src/sys/miscfs/fifofs/fifo_vnops.c:1.78
--- src/sys/miscfs/fifofs/fifo_vnops.c:1.77 Sat Aug 9 05:33:01 2014
+++ src/sys/miscfs/fifofs/fifo_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: fifo_vnops.c,v 1.77 2014/08/09 05:33:01 rtr Exp $ */
+/* $NetBSD: fifo_vnops.c,v 1.78 2017/04/11 14:25:00 riastradh Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.77 2014/08/09 05:33:01 rtr Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fifo_vnops.c,v 1.78 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -360,12 +360,11 @@ fifo_poll(void *v)
static int
fifo_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
struct lwp *a_l;
- } */ *ap = v;
+ } */ *ap __unused = v;
- VOP_UNLOCK(ap->a_vp);
return (0);
}
Index: src/sys/miscfs/genfs/layer_vnops.c
diff -u src/sys/miscfs/genfs/layer_vnops.c:1.61 src/sys/miscfs/genfs/layer_vnops.c:1.62
--- src/sys/miscfs/genfs/layer_vnops.c:1.61 Thu Mar 30 09:16:52 2017
+++ src/sys/miscfs/genfs/layer_vnops.c Tue Apr 11 14:25:00 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: layer_vnops.c,v 1.61 2017/03/30 09:16:52 hannken Exp $ */
+/* $NetBSD: layer_vnops.c,v 1.62 2017/04/11 14:25:00 riastradh Exp $ */
/*
* Copyright (c) 1999 National Aeronautics & Space Administration
@@ -170,7 +170,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.61 2017/03/30 09:16:52 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: layer_vnops.c,v 1.62 2017/04/11 14:25:00 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -579,7 +579,7 @@ layer_fsync(void *v)
int
layer_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -602,7 +602,7 @@ layer_inactive(void *v)
* like they do in the name lookup cache code.
* That's too much work for now.
*/
- VOP_UNLOCK(vp);
+
return 0;
}
Index: src/sys/miscfs/kernfs/kernfs_vnops.c
diff -u src/sys/miscfs/kernfs/kernfs_vnops.c:1.156 src/sys/miscfs/kernfs/kernfs_vnops.c:1.157
--- src/sys/miscfs/kernfs/kernfs_vnops.c:1.156 Sat Aug 20 12:37:09 2016
+++ src/sys/miscfs/kernfs/kernfs_vnops.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: kernfs_vnops.c,v 1.156 2016/08/20 12:37:09 hannken Exp $ */
+/* $NetBSD: kernfs_vnops.c,v 1.157 2017/04/11 14:25:01 riastradh Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.156 2016/08/20 12:37:09 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.157 2017/04/11 14:25:01 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1061,14 +1061,13 @@ kernfs_readdir(void *v)
int
kernfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
- struct vnode *vp = ap->a_vp;
*ap->a_recycle = false;
- VOP_UNLOCK(vp);
+
return (0);
}
Index: src/sys/miscfs/procfs/procfs_vnops.c
diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.195 src/sys/miscfs/procfs/procfs_vnops.c:1.196
--- src/sys/miscfs/procfs/procfs_vnops.c:1.195 Thu Mar 30 20:16:29 2017
+++ src/sys/miscfs/procfs/procfs_vnops.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_vnops.c,v 1.195 2017/03/30 20:16:29 christos Exp $ */
+/* $NetBSD: procfs_vnops.c,v 1.196 2017/04/11 14:25:01 riastradh Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -105,7 +105,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.195 2017/03/30 20:16:29 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.196 2017/04/11 14:25:01 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -414,7 +414,7 @@ procfs_close(void *v)
int
procfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -425,8 +425,6 @@ procfs_inactive(void *v)
*ap->a_recycle = (proc_find(pfs->pfs_pid) == NULL);
mutex_exit(proc_lock);
- VOP_UNLOCK(vp);
-
return (0);
}
Index: src/sys/miscfs/specfs/spec_vnops.c
diff -u src/sys/miscfs/specfs/spec_vnops.c:1.169 src/sys/miscfs/specfs/spec_vnops.c:1.170
--- src/sys/miscfs/specfs/spec_vnops.c:1.169 Wed Mar 1 10:46:05 2017
+++ src/sys/miscfs/specfs/spec_vnops.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: spec_vnops.c,v 1.169 2017/03/01 10:46:05 hannken Exp $ */
+/* $NetBSD: spec_vnops.c,v 1.170 2017/04/11 14:25:01 riastradh 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.169 2017/03/01 10:46:05 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spec_vnops.c,v 1.170 2017/04/11 14:25:01 riastradh Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -1082,7 +1082,7 @@ out:
int
spec_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
struct bool *a_recycle;
} */ *ap = v;
@@ -1090,7 +1090,7 @@ spec_inactive(void *v)
KASSERT(vp->v_mount == dead_rootmount);
*ap->a_recycle = true;
- VOP_UNLOCK(vp);
+
return 0;
}
Index: src/sys/nfs/nfs_node.c
diff -u src/sys/nfs/nfs_node.c:1.119 src/sys/nfs/nfs_node.c:1.120
--- src/sys/nfs/nfs_node.c:1.119 Sat Aug 20 12:37:09 2016
+++ src/sys/nfs/nfs_node.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: nfs_node.c,v 1.119 2016/08/20 12:37:09 hannken Exp $ */
+/* $NetBSD: nfs_node.c,v 1.120 2017/04/11 14:25:01 riastradh Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_node.c,v 1.119 2016/08/20 12:37:09 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_node.c,v 1.120 2017/04/11 14:25:01 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_nfs.h"
@@ -179,7 +179,7 @@ nfs_nget1(struct mount *mntp, nfsfh_t *f
int
nfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -203,8 +203,6 @@ nfs_inactive(void *v)
nfs_invaldircache(vp,
NFS_INVALDIRCACHE_FORCE | NFS_INVALDIRCACHE_KEEPEOF);
- VOP_UNLOCK(vp);
-
if (sp != NULL) {
workqueue_enqueue(nfs_sillyworkq, &sp->s_work, NULL);
}
Index: src/sys/rump/librump/rumpvfs/rumpfs.c
diff -u src/sys/rump/librump/rumpvfs/rumpfs.c:1.145 src/sys/rump/librump/rumpvfs/rumpfs.c:1.146
--- src/sys/rump/librump/rumpvfs/rumpfs.c:1.145 Wed Mar 1 10:44:47 2017
+++ src/sys/rump/librump/rumpvfs/rumpfs.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: rumpfs.c,v 1.145 2017/03/01 10:44:47 hannken Exp $ */
+/* $NetBSD: rumpfs.c,v 1.146 2017/04/11 14:25:01 riastradh Exp $ */
/*
* Copyright (c) 2009, 2010, 2011 Antti Kantee. All Rights Reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.145 2017/03/01 10:44:47 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.146 2017/04/11 14:25:01 riastradh Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -1592,7 +1592,7 @@ rump_vop_success(void *v)
static int
rump_vop_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -1611,7 +1611,6 @@ rump_vop_inactive(void *v)
}
*ap->a_recycle = (rn->rn_flags & RUMPNODE_CANRECLAIM) ? true : false;
- VOP_UNLOCK(vp);
return 0;
}
Index: src/sys/ufs/chfs/chfs_vnops.c
diff -u src/sys/ufs/chfs/chfs_vnops.c:1.30 src/sys/ufs/chfs/chfs_vnops.c:1.31
--- src/sys/ufs/chfs/chfs_vnops.c:1.30 Thu Mar 30 09:10:46 2017
+++ src/sys/ufs/chfs/chfs_vnops.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: chfs_vnops.c,v 1.30 2017/03/30 09:10:46 hannken Exp $ */
+/* $NetBSD: chfs_vnops.c,v 1.31 2017/04/11 14:25:01 riastradh Exp $ */
/*-
* Copyright (c) 2010 Department of Software Engineering,
@@ -1452,7 +1452,7 @@ chfs_readlink(void *v)
int
chfs_inactive(void *v)
{
- struct vnode *vp = ((struct vop_inactive_args *) v)->a_vp;
+ struct vnode *vp = ((struct vop_inactive_v2_args *) v)->a_vp;
struct chfs_inode *ip = VTOI(vp);
struct chfs_vnode_cache *chvc;
dbg("inactive | vno: %llu\n", (unsigned long long)ip->ino);
@@ -1463,13 +1463,11 @@ chfs_inactive(void *v)
if (ip->ino) {
chvc = ip->chvc;
if (chvc->nlink)
- *((struct vop_inactive_args *) v)->a_recycle = 0;
+ *((struct vop_inactive_v2_args *) v)->a_recycle = 0;
} else {
- *((struct vop_inactive_args *) v)->a_recycle = 1;
+ *((struct vop_inactive_v2_args *) v)->a_recycle = 1;
}
- VOP_UNLOCK(vp);
-
return 0;
}
Index: src/sys/ufs/ext2fs/ext2fs_inode.c
diff -u src/sys/ufs/ext2fs/ext2fs_inode.c:1.86 src/sys/ufs/ext2fs/ext2fs_inode.c:1.87
--- src/sys/ufs/ext2fs/ext2fs_inode.c:1.86 Sun Aug 14 11:44:54 2016
+++ src/sys/ufs/ext2fs/ext2fs_inode.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ext2fs_inode.c,v 1.86 2016/08/14 11:44:54 jdolecek Exp $ */
+/* $NetBSD: ext2fs_inode.c,v 1.87 2017/04/11 14:25:01 riastradh Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_inode.c,v 1.86 2016/08/14 11:44:54 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_inode.c,v 1.87 2017/04/11 14:25:01 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -190,7 +190,7 @@ ext2fs_setnblock(struct inode *ip, uint6
int
ext2fs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
bool *a_recycle;
} */ *ap = v;
@@ -223,7 +223,7 @@ out:
* so that it can be reused immediately.
*/
*ap->a_recycle = (ip->i_e2fs_dtime != 0);
- VOP_UNLOCK(vp);
+
return error;
}
Index: src/sys/ufs/lfs/lfs_vnops.c
diff -u src/sys/ufs/lfs/lfs_vnops.c:1.312 src/sys/ufs/lfs/lfs_vnops.c:1.313
--- src/sys/ufs/lfs/lfs_vnops.c:1.312 Tue Apr 11 06:01:03 2017
+++ src/sys/ufs/lfs/lfs_vnops.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_vnops.c,v 1.312 2017/04/11 06:01:03 riastradh Exp $ */
+/* $NetBSD: lfs_vnops.c,v 1.313 2017/04/11 14:25:01 riastradh Exp $ */
/*-
* Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc.
@@ -125,7 +125,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.312 2017/04/11 06:01:03 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.313 2017/04/11 14:25:01 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -519,8 +519,9 @@ out:
int
lfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
+ bool *a_recycle;
} */ *ap = v;
KASSERT(VOP_ISLOCKED(ap->a_vp) == LK_EXCLUSIVE);
@@ -535,7 +536,6 @@ lfs_inactive(void *v)
mutex_enter(&lfs_lock);
LFS_CLR_UINO(VTOI(ap->a_vp), IN_ALLMOD);
mutex_exit(&lfs_lock);
- VOP_UNLOCK(ap->a_vp);
return 0;
}
Index: src/sys/ufs/lfs/ulfs_inode.c
diff -u src/sys/ufs/lfs/ulfs_inode.c:1.17 src/sys/ufs/lfs/ulfs_inode.c:1.18
--- src/sys/ufs/lfs/ulfs_inode.c:1.17 Thu Mar 30 09:10:08 2017
+++ src/sys/ufs/lfs/ulfs_inode.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ulfs_inode.c,v 1.17 2017/03/30 09:10:08 hannken Exp $ */
+/* $NetBSD: ulfs_inode.c,v 1.18 2017/04/11 14:25:01 riastradh Exp $ */
/* from NetBSD: ufs_inode.c,v 1.95 2015/06/13 14:56:45 hannken Exp */
/*
@@ -38,7 +38,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ulfs_inode.c,v 1.17 2017/03/30 09:10:08 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ulfs_inode.c,v 1.18 2017/04/11 14:25:01 riastradh Exp $");
#if defined(_KERNEL_OPT)
#include "opt_lfs.h"
@@ -79,7 +79,7 @@ extern int prtactive;
int
ulfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
struct bool *a_recycle;
} */ *ap = v;
@@ -124,7 +124,7 @@ out:
* so that it can be reused immediately.
*/
*ap->a_recycle = (ip->i_mode == 0);
- VOP_UNLOCK(vp);
+
return (error);
}
Index: src/sys/ufs/mfs/mfs_vnops.c
diff -u src/sys/ufs/mfs/mfs_vnops.c:1.56 src/sys/ufs/mfs/mfs_vnops.c:1.57
--- src/sys/ufs/mfs/mfs_vnops.c:1.56 Wed Jan 14 11:21:31 2015
+++ src/sys/ufs/mfs/mfs_vnops.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: mfs_vnops.c,v 1.56 2015/01/14 11:21:31 hannken Exp $ */
+/* $NetBSD: mfs_vnops.c,v 1.57 2017/04/11 14:25:01 riastradh Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mfs_vnops.c,v 1.56 2015/01/14 11:21:31 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mfs_vnops.c,v 1.57 2017/04/11 14:25:01 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -271,7 +271,7 @@ mfs_close(void *v)
int
mfs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
} */ *ap = v;
struct vnode *vp = ap->a_vp;
Index: src/sys/ufs/ufs/ufs_inode.c
diff -u src/sys/ufs/ufs/ufs_inode.c:1.99 src/sys/ufs/ufs/ufs_inode.c:1.100
--- src/sys/ufs/ufs/ufs_inode.c:1.99 Wed Mar 1 10:42:45 2017
+++ src/sys/ufs/ufs/ufs_inode.c Tue Apr 11 14:25:01 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ufs_inode.c,v 1.99 2017/03/01 10:42:45 hannken Exp $ */
+/* $NetBSD: ufs_inode.c,v 1.100 2017/04/11 14:25:01 riastradh Exp $ */
/*
* Copyright (c) 1991, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_inode.c,v 1.99 2017/03/01 10:42:45 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_inode.c,v 1.100 2017/04/11 14:25:01 riastradh Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -77,7 +77,7 @@ extern int prtactive;
int
ufs_inactive(void *v)
{
- struct vop_inactive_args /* {
+ struct vop_inactive_v2_args /* {
struct vnode *a_vp;
struct bool *a_recycle;
} */ *ap = v;
@@ -150,7 +150,7 @@ out:
* so that it can be reused immediately.
*/
*ap->a_recycle = (ip->i_mode == 0);
- VOP_UNLOCK(vp);
+
return (allerror);
}