git: 1f96e4cd1e3c - stable/13 - Add VOP_VPUT_PAIR() with trivial default implementation.

Konstantin Belousov kib at FreeBSD.org
Wed Feb 24 07:58:48 UTC 2021


The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=1f96e4cd1e3c500d3837a77811ce47b96353296b

commit 1f96e4cd1e3c500d3837a77811ce47b96353296b
Author:     Konstantin Belousov <kib at FreeBSD.org>
AuthorDate: 2021-01-28 22:30:53 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-02-24 07:43:03 +0000

    Add VOP_VPUT_PAIR() with trivial default implementation.
    
    (cherry picked from commit 49c117c193768b10f5fb1c5e4d6b88300cfbcdd6)
---
 sys/kern/vfs_default.c | 15 +++++++++++++++
 sys/kern/vnode_if.src  |  9 +++++++++
 2 files changed, 24 insertions(+)

diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c
index 4b96d9522ce3..382fbb2d9ace 100644
--- a/sys/kern/vfs_default.c
+++ b/sys/kern/vfs_default.c
@@ -92,6 +92,7 @@ static int vop_stdfdatasync(struct vop_fdatasync_args *ap);
 static int vop_stdgetpages_async(struct vop_getpages_async_args *ap);
 static int vop_stdread_pgcache(struct vop_read_pgcache_args *ap);
 static int vop_stdstat(struct vop_stat_args *ap);
+static int vop_stdvput_pair(struct vop_vput_pair_args *ap);
 
 /*
  * This vnode table stores what we want to do if the filesystem doesn't
@@ -151,6 +152,7 @@ struct vop_vector default_vnodeops = {
 	.vop_unset_text =	vop_stdunset_text,
 	.vop_add_writecount =	vop_stdadd_writecount,
 	.vop_copy_file_range =	vop_stdcopy_file_range,
+	.vop_vput_pair =	vop_stdvput_pair,
 };
 VFS_VOP_VECTOR_REGISTER(default_vnodeops);
 
@@ -1592,3 +1594,16 @@ vop_stdread_pgcache(struct vop_read_pgcache_args *ap __unused)
 {
 	return (EJUSTRETURN);
 }
+
+static int
+vop_stdvput_pair(struct vop_vput_pair_args *ap)
+{
+	struct vnode *dvp, *vp, **vpp;
+
+	dvp = ap->a_dvp;
+	vpp = ap->a_vpp;
+	vput(dvp);
+	if (vpp != NULL && ap->a_unlock_vp && (vp = *vpp) != NULL)
+		vput(vp);
+	return (0);
+}
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src
index 5d15d4a0c863..b506237f385d 100644
--- a/sys/kern/vnode_if.src
+++ b/sys/kern/vnode_if.src
@@ -792,6 +792,15 @@ vop_copy_file_range {
 };
 
 
+%% vput_pair	dvp	E - -
+
+vop_vput_pair {
+	IN struct vnode *dvp;
+	INOUT struct vnode **vpp;
+	IN bool unlock_vp;
+};
+
+
 # The VOPs below are spares at the end of the table to allow new VOPs to be
 # added in stable branches without breaking the KBI.  New VOPs in HEAD should
 # be added above these spares.  When merging a new VOP to a stable branch,


More information about the dev-commits-src-all mailing list