Module Name: src
Committed By: riastradh
Date: Mon Apr 20 23:03:09 UTC 2015
Modified Files:
src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vnops.c
src/lib/libp2k: p2k.c
src/sys/coda: coda_vnops.c
src/sys/fs/adosfs: advnops.c
src/sys/fs/cd9660: cd9660_vnops.c
src/sys/fs/filecorefs: filecore_vnops.c
src/sys/fs/nilfs: nilfs_vnops.c
src/sys/fs/puffs: puffs_vnops.c
src/sys/fs/tmpfs: TODO 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_syscalls.c vnode_if.c
src/sys/miscfs/deadfs: dead_vnops.c
src/sys/miscfs/fdesc: fdesc_vnops.c
src/sys/miscfs/kernfs: kernfs_vnops.c
src/sys/miscfs/procfs: procfs_vnops.c
src/sys/nfs: nfs_serv.c nfs_vnops.c
src/sys/rump/include/rump: rumpvnode_if.h
src/sys/rump/librump/rumpvfs: rumpvnode_if.c
src/sys/sys: vnode_if.h
src/sys/ufs/chfs: chfs_vnops.c
src/sys/ufs/ext2fs: ext2fs_vnops.c
src/sys/ufs/lfs: lfs_vnops.c ulfs_vnops.c
src/sys/ufs/ufs: ufs_vnops.c
Log Message:
Make VOP_LINK return directory still locked and referenced.
Ride 7.99.10 bump.
To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 \
src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c
cvs rdiff -u -r1.65 -r1.66 src/lib/libp2k/p2k.c
cvs rdiff -u -r1.101 -r1.102 src/sys/coda/coda_vnops.c
cvs rdiff -u -r1.46 -r1.47 src/sys/fs/adosfs/advnops.c
cvs rdiff -u -r1.51 -r1.52 src/sys/fs/cd9660/cd9660_vnops.c
cvs rdiff -u -r1.43 -r1.44 src/sys/fs/filecorefs/filecore_vnops.c
cvs rdiff -u -r1.31 -r1.32 src/sys/fs/nilfs/nilfs_vnops.c
cvs rdiff -u -r1.202 -r1.203 src/sys/fs/puffs/puffs_vnops.c
cvs rdiff -u -r1.7 -r1.8 src/sys/fs/tmpfs/TODO
cvs rdiff -u -r1.121 -r1.122 src/sys/fs/tmpfs/tmpfs_vnops.c
cvs rdiff -u -r1.100 -r1.101 src/sys/fs/udf/udf_vnops.c
cvs rdiff -u -r1.62 -r1.63 src/sys/fs/union/union_vnops.c
cvs rdiff -u -r1.8 -r1.9 src/sys/fs/unionfs/unionfs_vnops.c
cvs rdiff -u -r1.20 -r1.21 src/sys/fs/v7fs/v7fs_vnops.c
cvs rdiff -u -r1.495 -r1.496 src/sys/kern/vfs_syscalls.c
cvs rdiff -u -r1.93 -r1.94 src/sys/kern/vnode_if.c
cvs rdiff -u -r1.57 -r1.58 src/sys/miscfs/deadfs/dead_vnops.c
cvs rdiff -u -r1.125 -r1.126 src/sys/miscfs/fdesc/fdesc_vnops.c
cvs rdiff -u -r1.154 -r1.155 src/sys/miscfs/kernfs/kernfs_vnops.c
cvs rdiff -u -r1.192 -r1.193 src/sys/miscfs/procfs/procfs_vnops.c
cvs rdiff -u -r1.170 -r1.171 src/sys/nfs/nfs_serv.c
cvs rdiff -u -r1.306 -r1.307 src/sys/nfs/nfs_vnops.c
cvs rdiff -u -r1.17 -r1.18 src/sys/rump/include/rump/rumpvnode_if.h
cvs rdiff -u -r1.16 -r1.17 src/sys/rump/librump/rumpvfs/rumpvnode_if.c
cvs rdiff -u -r1.88 -r1.89 src/sys/sys/vnode_if.h
cvs rdiff -u -r1.27 -r1.28 src/sys/ufs/chfs/chfs_vnops.c
cvs rdiff -u -r1.116 -r1.117 src/sys/ufs/ext2fs/ext2fs_vnops.c
cvs rdiff -u -r1.270 -r1.271 src/sys/ufs/lfs/lfs_vnops.c
cvs rdiff -u -r1.24 -r1.25 src/sys/ufs/lfs/ulfs_vnops.c
cvs rdiff -u -r1.229 -r1.230 src/sys/ufs/ufs/ufs_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/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.22 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.22 Fri Apr 10 19:59:10 2015
+++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c Mon Apr 20 23:03:07 2015
@@ -5510,7 +5510,7 @@ zfs_netbsd_readlink(void *v)
static int
zfs_netbsd_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -5526,16 +5526,8 @@ zfs_netbsd_link(void *v)
KASSERT(cnp->cn_nameptr != NULL);
KASSERT(VOP_ISLOCKED(dvp) == LK_EXCLUSIVE);
- error = zfs_link(dvp, vp, __UNCONST(cnp->cn_nameptr), cnp->cn_cred,
- NULL, 0);
-
- /*
- * Unlock and release dvp because the VOP_LINK protocol is insane.
- */
- VOP_UNLOCK(dvp);
- VN_RELE(dvp);
-
- return (error);
+ return (zfs_link(dvp, vp, __UNCONST(cnp->cn_nameptr), cnp->cn_cred,
+ NULL, 0));
}
static int
Index: src/lib/libp2k/p2k.c
diff -u src/lib/libp2k/p2k.c:1.65 src/lib/libp2k/p2k.c:1.66
--- src/lib/libp2k/p2k.c:1.65 Mon Apr 20 21:48:47 2015
+++ src/lib/libp2k/p2k.c Mon Apr 20 23:03:07 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: p2k.c,v 1.65 2015/04/20 21:48:47 riastradh Exp $ */
+/* $NetBSD: p2k.c,v 1.66 2015/04/20 23:03:07 riastradh Exp $ */
/*
* Copyright (c) 2007, 2008, 2009 Antti Kantee. All Rights Reserved.
@@ -1054,6 +1054,8 @@ p2k_node_link(struct puffs_usermount *pu
RUMP_VOP_LOCK(dvp, LK_EXCLUSIVE);
rump_pub_vp_incref(dvp);
rv = RUMP_VOP_LINK(dvp, OPC2VP(targ), cn);
+ rump_pub_vp_rele(dvp);
+ RUMP_VOP_UNLOCK(dvp);
freecn(cn);
return rv;
Index: src/sys/coda/coda_vnops.c
diff -u src/sys/coda/coda_vnops.c:1.101 src/sys/coda/coda_vnops.c:1.102
--- src/sys/coda/coda_vnops.c:1.101 Sat Dec 13 15:59:30 2014
+++ src/sys/coda/coda_vnops.c Mon Apr 20 23:03:07 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: coda_vnops.c,v 1.101 2014/12/13 15:59:30 hannken Exp $ */
+/* $NetBSD: coda_vnops.c,v 1.102 2015/04/20 23:03:07 riastradh Exp $ */
/*
*
@@ -46,7 +46,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.101 2014/12/13 15:59:30 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: coda_vnops.c,v 1.102 2015/04/20 23:03:07 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1147,7 +1147,7 @@ int
coda_link(void *v)
{
/* true args */
- struct vop_link_args *ap = v;
+ struct vop_link_v2_args *ap = v;
vnode_t *vp = ap->a_vp;
struct cnode *cp = VTOC(vp);
vnode_t *dvp = ap->a_dvp;
@@ -1208,7 +1208,6 @@ coda_link(void *v)
CODADEBUG(CODA_LINK, myprintf(("in link result %d\n",error)); )
exit:
- vput(dvp);
return(error);
}
Index: src/sys/fs/adosfs/advnops.c
diff -u src/sys/fs/adosfs/advnops.c:1.46 src/sys/fs/adosfs/advnops.c:1.47
--- src/sys/fs/adosfs/advnops.c:1.46 Sat Mar 28 19:24:05 2015
+++ src/sys/fs/adosfs/advnops.c Mon Apr 20 23:03:07 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: advnops.c,v 1.46 2015/03/28 19:24:05 maxv Exp $ */
+/* $NetBSD: advnops.c,v 1.47 2015/04/20 23:03:07 riastradh Exp $ */
/*
* Copyright (c) 1994 Christian E. Hopps
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.46 2015/03/28 19:24:05 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: advnops.c,v 1.47 2015/04/20 23:03:07 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -409,14 +409,13 @@ reterr:
int
adosfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
} */ *ap = v;
VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
- vput(ap->a_dvp);
return (EROFS);
}
Index: src/sys/fs/cd9660/cd9660_vnops.c
diff -u src/sys/fs/cd9660/cd9660_vnops.c:1.51 src/sys/fs/cd9660/cd9660_vnops.c:1.52
--- src/sys/fs/cd9660/cd9660_vnops.c:1.51 Sat Mar 28 19:24:05 2015
+++ src/sys/fs/cd9660/cd9660_vnops.c Mon Apr 20 23:03:07 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: cd9660_vnops.c,v 1.51 2015/03/28 19:24:05 maxv Exp $ */
+/* $NetBSD: cd9660_vnops.c,v 1.52 2015/04/20 23:03:07 riastradh Exp $ */
/*-
* Copyright (c) 1994
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.51 2015/03/28 19:24:05 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cd9660_vnops.c,v 1.52 2015/04/20 23:03:07 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -664,14 +664,13 @@ cd9660_readlink(void *v)
int
cd9660_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
} */ *ap = v;
VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
- vput(ap->a_dvp);
return (EROFS);
}
Index: src/sys/fs/filecorefs/filecore_vnops.c
diff -u src/sys/fs/filecorefs/filecore_vnops.c:1.43 src/sys/fs/filecorefs/filecore_vnops.c:1.44
--- src/sys/fs/filecorefs/filecore_vnops.c:1.43 Sat Mar 28 19:24:05 2015
+++ src/sys/fs/filecorefs/filecore_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: filecore_vnops.c,v 1.43 2015/03/28 19:24:05 maxv Exp $ */
+/* $NetBSD: filecore_vnops.c,v 1.44 2015/04/20 23:03:08 riastradh Exp $ */
/*-
* Copyright (c) 1994 The Regents of the University of California.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.43 2015/03/28 19:24:05 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: filecore_vnops.c,v 1.44 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -419,14 +419,13 @@ filecore_readlink(void *v)
int
filecore_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
} */ *ap = v;
VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
- vput(ap->a_dvp);
return (EROFS);
}
Index: src/sys/fs/nilfs/nilfs_vnops.c
diff -u src/sys/fs/nilfs/nilfs_vnops.c:1.31 src/sys/fs/nilfs/nilfs_vnops.c:1.32
--- src/sys/fs/nilfs/nilfs_vnops.c:1.31 Sun Mar 29 14:12:28 2015
+++ src/sys/fs/nilfs/nilfs_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: nilfs_vnops.c,v 1.31 2015/03/29 14:12:28 riastradh Exp $ */
+/* $NetBSD: nilfs_vnops.c,v 1.32 2015/04/20 23:03:08 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.31 2015/03/29 14:12:28 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.32 2015/04/20 23:03:08 riastradh Exp $");
#endif /* not lint */
@@ -1189,7 +1189,7 @@ nilfs_do_link(struct vnode *dvp, struct
int
nilfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -1205,7 +1205,6 @@ nilfs_link(void *v)
VN_KNOTE(vp, NOTE_LINK);
VN_KNOTE(dvp, NOTE_WRITE);
- vput(dvp);
return error;
}
Index: src/sys/fs/puffs/puffs_vnops.c
diff -u src/sys/fs/puffs/puffs_vnops.c:1.202 src/sys/fs/puffs/puffs_vnops.c:1.203
--- src/sys/fs/puffs/puffs_vnops.c:1.202 Wed Feb 25 23:14:59 2015
+++ src/sys/fs/puffs/puffs_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: puffs_vnops.c,v 1.202 2015/02/25 23:14:59 christos Exp $ */
+/* $NetBSD: puffs_vnops.c,v 1.203 2015/04/20 23:03:08 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.202 2015/02/25 23:14:59 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.203 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@@ -2017,7 +2017,7 @@ puffs_vnop_rmdir(void *v)
int
puffs_vnop_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
const struct vnodeop_desc *a_desc;
struct vnode *a_dvp;
struct vnode *a_vp;
@@ -2040,8 +2040,6 @@ puffs_vnop_link(void *v)
PUFFS_VN_LINK, VPTOPNC(dvp));
puffs_msg_enqueue(pmp, park_link);
- REFPN_AND_UNLOCKVP(dvp, dpn);
- REFPN(pn);
error = puffs_msg_wait2(pmp, park_link, dpn, pn);
PUFFS_MSG_RELEASE(link);
@@ -2058,9 +2056,6 @@ puffs_vnop_link(void *v)
PUFFS_UPDATECTIME|PUFFS_UPDATEMTIME, 0);
}
- RELEPN_AND_VP(dvp, dpn);
- puffs_releasenode(pn);
-
return error;
}
Index: src/sys/fs/tmpfs/TODO
diff -u src/sys/fs/tmpfs/TODO:1.7 src/sys/fs/tmpfs/TODO:1.8
--- src/sys/fs/tmpfs/TODO:1.7 Tue Jun 22 18:32:07 2010
+++ src/sys/fs/tmpfs/TODO Mon Apr 20 23:03:08 2015
@@ -5,7 +5,7 @@
- Adjust code style - remove the /* ---- */ markers and use standard
struct vop_*_args assignment into *ap with comment like:
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
Index: src/sys/fs/tmpfs/tmpfs_vnops.c
diff -u src/sys/fs/tmpfs/tmpfs_vnops.c:1.121 src/sys/fs/tmpfs/tmpfs_vnops.c:1.122
--- src/sys/fs/tmpfs/tmpfs_vnops.c:1.121 Mon Sep 8 14:49:46 2014
+++ src/sys/fs/tmpfs/tmpfs_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: tmpfs_vnops.c,v 1.121 2014/09/08 14:49:46 gson Exp $ */
+/* $NetBSD: tmpfs_vnops.c,v 1.122 2015/04/20 23:03:08 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.121 2014/09/08 14:49:46 gson Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vnops.c,v 1.122 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/dirent.h>
@@ -744,7 +744,7 @@ out:
int
tmpfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -801,7 +801,6 @@ tmpfs_link(void *v)
error = 0;
out:
VOP_UNLOCK(vp);
- vput(dvp);
return error;
}
Index: src/sys/fs/udf/udf_vnops.c
diff -u src/sys/fs/udf/udf_vnops.c:1.100 src/sys/fs/udf/udf_vnops.c:1.101
--- src/sys/fs/udf/udf_vnops.c:1.100 Mon Apr 6 08:39:23 2015
+++ src/sys/fs/udf/udf_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_vnops.c,v 1.100 2015/04/06 08:39:23 hannken Exp $ */
+/* $NetBSD: udf_vnops.c,v 1.101 2015/04/20 23:03:08 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.100 2015/04/06 08:39:23 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_vnops.c,v 1.101 2015/04/20 23:03:08 riastradh Exp $");
#endif /* not lint */
@@ -1593,7 +1593,7 @@ udf_do_link(struct vnode *dvp, struct vn
int
udf_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -1609,7 +1609,6 @@ udf_link(void *v)
VN_KNOTE(vp, NOTE_LINK);
VN_KNOTE(dvp, NOTE_WRITE);
- vput(dvp);
return error;
}
Index: src/sys/fs/union/union_vnops.c
diff -u src/sys/fs/union/union_vnops.c:1.62 src/sys/fs/union/union_vnops.c:1.63
--- src/sys/fs/union/union_vnops.c:1.62 Fri Jul 25 08:20:52 2014
+++ src/sys/fs/union/union_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: union_vnops.c,v 1.62 2014/07/25 08:20:52 dholland Exp $ */
+/* $NetBSD: union_vnops.c,v 1.63 2015/04/20 23:03:08 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.62 2014/07/25 08:20:52 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: union_vnops.c,v 1.63 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1176,7 +1176,7 @@ union_remove(void *v)
int
union_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -1233,7 +1233,6 @@ union_link(void *v)
*/
error = EEXIST;
VOP_UNLOCK(ap->a_vp);
- vput(ap->a_dvp);
vput(vp);
return (error);
}
@@ -1247,20 +1246,10 @@ union_link(void *v)
if (dvp == NULLVP)
error = EROFS;
- if (error) {
- vput(ap->a_dvp);
+ if (error)
return (error);
- }
- /*
- * Account for VOP_LINK to vrele dvp.
- * Note: VOP_LINK will unlock dvp.
- */
- vref(dvp);
- error = VOP_LINK(dvp, vp, cnp);
- vrele(ap->a_dvp);
-
- return error;
+ return VOP_LINK(dvp, vp, cnp);
}
int
Index: src/sys/fs/unionfs/unionfs_vnops.c
diff -u src/sys/fs/unionfs/unionfs_vnops.c:1.8 src/sys/fs/unionfs/unionfs_vnops.c:1.9
--- src/sys/fs/unionfs/unionfs_vnops.c:1.8 Fri Jul 25 08:20:52 2014
+++ src/sys/fs/unionfs/unionfs_vnops.c Mon Apr 20 23:03:08 2015
@@ -897,7 +897,7 @@ static int
unionfs_link(void *v)
{
#if 0
- struct vop_link_args *ap = v;
+ struct vop_link_v2_args *ap = v;
int error;
int needrelookup;
struct unionfs_node *dunp;
Index: src/sys/fs/v7fs/v7fs_vnops.c
diff -u src/sys/fs/v7fs/v7fs_vnops.c:1.20 src/sys/fs/v7fs/v7fs_vnops.c:1.21
--- src/sys/fs/v7fs/v7fs_vnops.c:1.20 Mon Dec 29 15:29:38 2014
+++ src/sys/fs/v7fs/v7fs_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: v7fs_vnops.c,v 1.20 2014/12/29 15:29:38 hannken Exp $ */
+/* $NetBSD: v7fs_vnops.c,v 1.21 2015/04/20 23:03:08 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.20 2014/12/29 15:29:38 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.21 2015/04/20 23:03:08 riastradh Exp $");
#if defined _KERNEL_OPT
#include "opt_v7fs.h"
#endif
@@ -722,7 +722,7 @@ out:
int
v7fs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -750,8 +750,6 @@ v7fs_link(void *v)
VOP_UNLOCK(vp);
unlock:
- vput(dvp);
-
return error;
}
Index: src/sys/kern/vfs_syscalls.c
diff -u src/sys/kern/vfs_syscalls.c:1.495 src/sys/kern/vfs_syscalls.c:1.496
--- src/sys/kern/vfs_syscalls.c:1.495 Thu Apr 9 05:08:15 2015
+++ src/sys/kern/vfs_syscalls.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_syscalls.c,v 1.495 2015/04/09 05:08:15 riastradh Exp $ */
+/* $NetBSD: vfs_syscalls.c,v 1.496 2015/04/20 23:03:08 riastradh Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.495 2015/04/09 05:08:15 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.496 2015/04/20 23:03:08 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_fileassoc.h"
@@ -2407,6 +2407,8 @@ do_sys_linkat(struct lwp *l, int fdpath,
goto abortop;
}
error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd);
+ VOP_UNLOCK(nd.ni_dvp);
+ vrele(nd.ni_dvp);
out2:
pathbuf_destroy(linkpb);
out1:
Index: src/sys/kern/vnode_if.c
diff -u src/sys/kern/vnode_if.c:1.93 src/sys/kern/vnode_if.c:1.94
--- src/sys/kern/vnode_if.c:1.93 Fri Jul 25 08:18:50 2014
+++ src/sys/kern/vnode_if.c Mon Apr 20 23:03:08 2015
@@ -1,11 +1,11 @@
-/* $NetBSD: vnode_if.c,v 1.93 2014/07/25 08:18:50 dholland Exp $ */
+/* $NetBSD: vnode_if.c,v 1.94 2015/04/20 23:03:08 riastradh Exp $ */
/*
* Warning: DO NOT EDIT! This file is automatically generated!
* (Modifications made here may easily be lost!)
*
* Created from the file:
- * NetBSD: vnode_if.src,v 1.67 2014/07/25 08:16:47 dholland Exp
+ * NetBSD: vnode_if.src,v 1.68 2015/04/20 22:59:19 riastradh Exp
* by the script:
* NetBSD: vnode_if.sh,v 1.60 2014/01/13 12:07:55 hannken Exp
*/
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.93 2014/07/25 08:18:50 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vnode_if.c,v 1.94 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/mount.h>
@@ -794,18 +794,18 @@ VOP_REMOVE(struct vnode *dvp,
}
const int vop_link_vp_offsets[] = {
- VOPARG_OFFSETOF(struct vop_link_args,a_dvp),
- VOPARG_OFFSETOF(struct vop_link_args,a_vp),
+ VOPARG_OFFSETOF(struct vop_link_v2_args,a_dvp),
+ VOPARG_OFFSETOF(struct vop_link_v2_args,a_vp),
VDESC_NO_OFFSET
};
const struct vnodeop_desc vop_link_desc = {
VOP_LINK_DESCOFFSET,
"vop_link",
- 0 | VDESC_VP0_WILLPUT,
+ 0,
vop_link_vp_offsets,
VDESC_NO_OFFSET,
VDESC_NO_OFFSET,
- VOPARG_OFFSETOF(struct vop_link_args, a_cnp),
+ VOPARG_OFFSETOF(struct vop_link_v2_args, a_cnp),
};
int
VOP_LINK(struct vnode *dvp,
@@ -814,7 +814,7 @@ VOP_LINK(struct vnode *dvp,
{
int error;
bool mpsafe;
- struct vop_link_args a;
+ struct vop_link_v2_args a;
a.a_desc = VDESC(vop_link);
a.a_dvp = dvp;
a.a_vp = vp;
Index: src/sys/miscfs/deadfs/dead_vnops.c
diff -u src/sys/miscfs/deadfs/dead_vnops.c:1.57 src/sys/miscfs/deadfs/dead_vnops.c:1.58
--- src/sys/miscfs/deadfs/dead_vnops.c:1.57 Fri Jul 25 08:20:52 2014
+++ src/sys/miscfs/deadfs/dead_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: dead_vnops.c,v 1.57 2014/07/25 08:20:52 dholland Exp $ */
+/* $NetBSD: dead_vnops.c,v 1.58 2015/04/20 23:03:08 riastradh Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.57 2014/07/25 08:20:52 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dead_vnops.c,v 1.58 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -245,13 +245,13 @@ dead_remove(void *v)
int
dead_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
} */ *ap = v;
- vput(ap->a_dvp);
+ (void)ap;
return EIO;
}
Index: src/sys/miscfs/fdesc/fdesc_vnops.c
diff -u src/sys/miscfs/fdesc/fdesc_vnops.c:1.125 src/sys/miscfs/fdesc/fdesc_vnops.c:1.126
--- src/sys/miscfs/fdesc/fdesc_vnops.c:1.125 Fri Sep 5 10:43:26 2014
+++ src/sys/miscfs/fdesc/fdesc_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: fdesc_vnops.c,v 1.125 2014/09/05 10:43:26 christos Exp $ */
+/* $NetBSD: fdesc_vnops.c,v 1.126 2015/04/20 23:03:08 riastradh Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.125 2014/09/05 10:43:26 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.126 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -922,14 +922,13 @@ fdesc_print(void *v)
int
fdesc_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
} */ *ap = v;
VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
- vput(ap->a_dvp);
return (EROFS);
}
Index: src/sys/miscfs/kernfs/kernfs_vnops.c
diff -u src/sys/miscfs/kernfs/kernfs_vnops.c:1.154 src/sys/miscfs/kernfs/kernfs_vnops.c:1.155
--- src/sys/miscfs/kernfs/kernfs_vnops.c:1.154 Fri Jul 25 08:20:52 2014
+++ src/sys/miscfs/kernfs/kernfs_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: kernfs_vnops.c,v 1.154 2014/07/25 08:20:52 dholland Exp $ */
+/* $NetBSD: kernfs_vnops.c,v 1.155 2015/04/20 23:03:08 riastradh Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.154 2014/07/25 08:20:52 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kernfs_vnops.c,v 1.155 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1146,14 +1146,13 @@ kernfs_print(void *v)
int
kernfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
} */ *ap = v;
VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
- vput(ap->a_dvp);
return (EROFS);
}
Index: src/sys/miscfs/procfs/procfs_vnops.c
diff -u src/sys/miscfs/procfs/procfs_vnops.c:1.192 src/sys/miscfs/procfs/procfs_vnops.c:1.193
--- src/sys/miscfs/procfs/procfs_vnops.c:1.192 Fri Sep 5 09:26:16 2014
+++ src/sys/miscfs/procfs/procfs_vnops.c Mon Apr 20 23:03:08 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: procfs_vnops.c,v 1.192 2014/09/05 09:26:16 matt Exp $ */
+/* $NetBSD: procfs_vnops.c,v 1.193 2015/04/20 23:03:08 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.192 2014/09/05 09:26:16 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: procfs_vnops.c,v 1.193 2015/04/20 23:03:08 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -516,14 +516,13 @@ procfs_print(void *v)
int
procfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
} */ *ap = v;
VOP_ABORTOP(ap->a_dvp, ap->a_cnp);
- vput(ap->a_dvp);
return (EROFS);
}
Index: src/sys/nfs/nfs_serv.c
diff -u src/sys/nfs/nfs_serv.c:1.170 src/sys/nfs/nfs_serv.c:1.171
--- src/sys/nfs/nfs_serv.c:1.170 Thu Jan 23 10:13:57 2014
+++ src/sys/nfs/nfs_serv.c Mon Apr 20 23:03:09 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: nfs_serv.c,v 1.170 2014/01/23 10:13:57 hannken Exp $ */
+/* $NetBSD: nfs_serv.c,v 1.171 2015/04/20 23:03:09 riastradh Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -55,7 +55,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_serv.c,v 1.170 2014/01/23 10:13:57 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_serv.c,v 1.171 2015/04/20 23:03:09 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -2222,6 +2222,9 @@ out:
nqsrv_getl(vp, ND_WRITE);
nqsrv_getl(xp, ND_WRITE);
error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd);
+ if (nd.ni_dvp != nd.ni_vp)
+ VOP_UNLOCK(nd.ni_dvp);
+ vrele(nd.ni_dvp);
} else {
VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd);
if (nd.ni_dvp == nd.ni_vp)
Index: src/sys/nfs/nfs_vnops.c
diff -u src/sys/nfs/nfs_vnops.c:1.306 src/sys/nfs/nfs_vnops.c:1.307
--- src/sys/nfs/nfs_vnops.c:1.306 Fri Jul 25 08:20:53 2014
+++ src/sys/nfs/nfs_vnops.c Mon Apr 20 23:03:09 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: nfs_vnops.c,v 1.306 2014/07/25 08:20:53 dholland Exp $ */
+/* $NetBSD: nfs_vnops.c,v 1.307 2015/04/20 23:03:09 riastradh Exp $ */
/*
* Copyright (c) 1989, 1993
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.306 2014/07/25 08:20:53 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_vnops.c,v 1.307 2015/04/20 23:03:09 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_nfs.h"
@@ -2050,7 +2050,7 @@ nfs_linkrpc(struct vnode *dvp, struct vn
int
nfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -2063,7 +2063,6 @@ nfs_link(void *v)
error = vn_lock(vp, LK_EXCLUSIVE);
if (error != 0) {
VOP_ABORTOP(dvp, cnp);
- vput(dvp);
return error;
}
@@ -2083,7 +2082,6 @@ nfs_link(void *v)
VOP_UNLOCK(vp);
VN_KNOTE(vp, NOTE_LINK);
VN_KNOTE(dvp, NOTE_WRITE);
- vput(dvp);
return (error);
}
Index: src/sys/rump/include/rump/rumpvnode_if.h
diff -u src/sys/rump/include/rump/rumpvnode_if.h:1.17 src/sys/rump/include/rump/rumpvnode_if.h:1.18
--- src/sys/rump/include/rump/rumpvnode_if.h:1.17 Fri Jul 25 08:18:50 2014
+++ src/sys/rump/include/rump/rumpvnode_if.h Mon Apr 20 23:03:09 2015
@@ -1,11 +1,11 @@
-/* $NetBSD: rumpvnode_if.h,v 1.17 2014/07/25 08:18:50 dholland Exp $ */
+/* $NetBSD: rumpvnode_if.h,v 1.18 2015/04/20 23:03:09 riastradh Exp $ */
/*
* Warning: DO NOT EDIT! This file is automatically generated!
* (Modifications made here may easily be lost!)
*
* Created from the file:
- * NetBSD: vnode_if.src,v 1.67 2014/07/25 08:16:47 dholland Exp
+ * NetBSD: vnode_if.src,v 1.68 2015/04/20 22:59:19 riastradh Exp
* by the script:
* NetBSD: vnode_if.sh,v 1.60 2014/01/13 12:07:55 hannken Exp
*/
Index: src/sys/rump/librump/rumpvfs/rumpvnode_if.c
diff -u src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.16 src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.17
--- src/sys/rump/librump/rumpvfs/rumpvnode_if.c:1.16 Fri Jul 25 08:18:50 2014
+++ src/sys/rump/librump/rumpvfs/rumpvnode_if.c Mon Apr 20 23:03:09 2015
@@ -1,11 +1,11 @@
-/* $NetBSD: rumpvnode_if.c,v 1.16 2014/07/25 08:18:50 dholland Exp $ */
+/* $NetBSD: rumpvnode_if.c,v 1.17 2015/04/20 23:03:09 riastradh Exp $ */
/*
* Warning: DO NOT EDIT! This file is automatically generated!
* (Modifications made here may easily be lost!)
*
* Created from the file:
- * NetBSD: vnode_if.src,v 1.67 2014/07/25 08:16:47 dholland Exp
+ * NetBSD: vnode_if.src,v 1.68 2015/04/20 22:59:19 riastradh Exp
* by the script:
* NetBSD: vnode_if.sh,v 1.60 2014/01/13 12:07:55 hannken Exp
*/
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.16 2014/07/25 08:18:50 dholland Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rumpvnode_if.c,v 1.17 2015/04/20 23:03:09 riastradh Exp $");
#include <sys/param.h>
#include <sys/mount.h>
Index: src/sys/sys/vnode_if.h
diff -u src/sys/sys/vnode_if.h:1.88 src/sys/sys/vnode_if.h:1.89
--- src/sys/sys/vnode_if.h:1.88 Fri Jul 25 08:18:50 2014
+++ src/sys/sys/vnode_if.h Mon Apr 20 23:03:09 2015
@@ -1,11 +1,11 @@
-/* $NetBSD: vnode_if.h,v 1.88 2014/07/25 08:18:50 dholland Exp $ */
+/* $NetBSD: vnode_if.h,v 1.89 2015/04/20 23:03:09 riastradh Exp $ */
/*
* Warning: DO NOT EDIT! This file is automatically generated!
* (Modifications made here may easily be lost!)
*
* Created from the file:
- * NetBSD: vnode_if.src,v 1.67 2014/07/25 08:16:47 dholland Exp
+ * NetBSD: vnode_if.src,v 1.68 2015/04/20 22:59:19 riastradh Exp
* by the script:
* NetBSD: vnode_if.sh,v 1.60 2014/01/13 12:07:55 hannken Exp
*/
@@ -280,7 +280,7 @@ extern const struct vnodeop_desc vop_rem
int VOP_REMOVE(struct vnode *, struct vnode *, struct componentname *);
#define VOP_LINK_DESCOFFSET 23
-struct vop_link_args {
+struct vop_link_v2_args {
const struct vnodeop_desc *a_desc;
struct vnode *a_dvp;
struct vnode *a_vp;
Index: src/sys/ufs/chfs/chfs_vnops.c
diff -u src/sys/ufs/chfs/chfs_vnops.c:1.27 src/sys/ufs/chfs/chfs_vnops.c:1.28
--- src/sys/ufs/chfs/chfs_vnops.c:1.27 Sat Mar 28 19:24:04 2015
+++ src/sys/ufs/chfs/chfs_vnops.c Mon Apr 20 23:03:09 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: chfs_vnops.c,v 1.27 2015/03/28 19:24:04 maxv Exp $ */
+/* $NetBSD: chfs_vnops.c,v 1.28 2015/04/20 23:03:09 riastradh Exp $ */
/*-
* Copyright (c) 2010 Department of Software Engineering,
@@ -1075,9 +1075,9 @@ out:
int
chfs_link(void *v)
{
- struct vnode *dvp = ((struct vop_link_args *) v)->a_dvp;
- struct vnode *vp = ((struct vop_link_args *) v)->a_vp;
- struct componentname *cnp = ((struct vop_link_args *) v)->a_cnp;
+ struct vnode *dvp = ((struct vop_link_v2_args *) v)->a_dvp;
+ struct vnode *vp = ((struct vop_link_v2_args *) v)->a_vp;
+ struct componentname *cnp = ((struct vop_link_v2_args *) v)->a_cnp;
struct chfs_inode *ip, *parent;
int error = 0;
@@ -1106,7 +1106,6 @@ chfs_link(void *v)
if (dvp != vp)
VOP_UNLOCK(vp);
out:
- vput(dvp);
return error;
}
Index: src/sys/ufs/ext2fs/ext2fs_vnops.c
diff -u src/sys/ufs/ext2fs/ext2fs_vnops.c:1.116 src/sys/ufs/ext2fs/ext2fs_vnops.c:1.117
--- src/sys/ufs/ext2fs/ext2fs_vnops.c:1.116 Fri Mar 27 17:27:56 2015
+++ src/sys/ufs/ext2fs/ext2fs_vnops.c Mon Apr 20 23:03:09 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: ext2fs_vnops.c,v 1.116 2015/03/27 17:27:56 riastradh Exp $ */
+/* $NetBSD: ext2fs_vnops.c,v 1.117 2015/04/20 23:03:09 riastradh Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -65,7 +65,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.116 2015/03/27 17:27:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.117 2015/04/20 23:03:09 riastradh Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -589,7 +589,7 @@ ext2fs_remove(void *v)
int
ext2fs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -639,7 +639,6 @@ out1:
out2:
VN_KNOTE(vp, NOTE_LINK);
VN_KNOTE(dvp, NOTE_WRITE);
- vput(dvp);
return (error);
}
Index: src/sys/ufs/lfs/lfs_vnops.c
diff -u src/sys/ufs/lfs/lfs_vnops.c:1.270 src/sys/ufs/lfs/lfs_vnops.c:1.271
--- src/sys/ufs/lfs/lfs_vnops.c:1.270 Fri Mar 27 17:27:56 2015
+++ src/sys/ufs/lfs/lfs_vnops.c Mon Apr 20 23:03:09 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_vnops.c,v 1.270 2015/03/27 17:27:56 riastradh Exp $ */
+/* $NetBSD: lfs_vnops.c,v 1.271 2015/04/20 23:03:09 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.270 2015/03/27 17:27:56 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.271 2015/04/20 23:03:09 riastradh Exp $");
#ifdef _KERNEL_OPT
#include "opt_compat_netbsd.h"
@@ -1231,7 +1231,7 @@ lfs_rmdir(void *v)
int
lfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -1250,12 +1250,6 @@ lfs_link(void *v)
error = lfs_set_dirop(dvp, NULL);
if (error) {
- /*
- * XXX dholland 20140515 this was here before but must
- * be wrong.
- */
- vput(dvp);
-
return error;
}
Index: src/sys/ufs/lfs/ulfs_vnops.c
diff -u src/sys/ufs/lfs/ulfs_vnops.c:1.24 src/sys/ufs/lfs/ulfs_vnops.c:1.25
--- src/sys/ufs/lfs/ulfs_vnops.c:1.24 Mon Apr 20 21:02:49 2015
+++ src/sys/ufs/lfs/ulfs_vnops.c Mon Apr 20 23:03:09 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: ulfs_vnops.c,v 1.24 2015/04/20 21:02:49 riastradh Exp $ */
+/* $NetBSD: ulfs_vnops.c,v 1.25 2015/04/20 23:03:09 riastradh Exp $ */
/* from NetBSD: ufs_vnops.c,v 1.213 2013/06/08 05:47:02 kardel Exp */
/*-
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ulfs_vnops.c,v 1.24 2015/04/20 21:02:49 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ulfs_vnops.c,v 1.25 2015/04/20 23:03:09 riastradh Exp $");
#if defined(_KERNEL_OPT)
#include "opt_lfs.h"
@@ -541,7 +541,7 @@ ulfs_remove(void *v)
int
ulfs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -600,7 +600,6 @@ ulfs_link(void *v)
out2:
VN_KNOTE(vp, NOTE_LINK);
VN_KNOTE(dvp, NOTE_WRITE);
- vput(dvp);
fstrans_done(mp);
return (error);
}
Index: src/sys/ufs/ufs/ufs_vnops.c
diff -u src/sys/ufs/ufs/ufs_vnops.c:1.229 src/sys/ufs/ufs/ufs_vnops.c:1.230
--- src/sys/ufs/ufs/ufs_vnops.c:1.229 Mon Apr 20 21:02:49 2015
+++ src/sys/ufs/ufs/ufs_vnops.c Mon Apr 20 23:03:09 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: ufs_vnops.c,v 1.229 2015/04/20 21:02:49 riastradh Exp $ */
+/* $NetBSD: ufs_vnops.c,v 1.230 2015/04/20 23:03:09 riastradh Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.229 2015/04/20 21:02:49 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.230 2015/04/20 23:03:09 riastradh Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -766,7 +766,7 @@ ufs_remove(void *v)
int
ufs_link(void *v)
{
- struct vop_link_args /* {
+ struct vop_link_v2_args /* {
struct vnode *a_dvp;
struct vnode *a_vp;
struct componentname *a_cnp;
@@ -832,7 +832,6 @@ ufs_link(void *v)
out2:
VN_KNOTE(vp, NOTE_LINK);
VN_KNOTE(dvp, NOTE_WRITE);
- vput(dvp);
fstrans_done(mp);
return (error);
}