svn commit: r357358 - in head/sys: kern sys
Mateusz Guzik
mjg at FreeBSD.org
Sat Feb 1 06:39:50 UTC 2020
Author: mjg
Date: Sat Feb 1 06:39:49 2020
New Revision: 357358
URL: https://svnweb.freebsd.org/changeset/base/357358
Log:
vfs: add vrefactn
Differential Revision: https://reviews.freebsd.org/D23427
Modified:
head/sys/kern/vfs_subr.c
head/sys/sys/vnode.h
Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c Sat Feb 1 06:39:10 2020 (r357357)
+++ head/sys/kern/vfs_subr.c Sat Feb 1 06:39:49 2020 (r357358)
@@ -3046,6 +3046,19 @@ vrefact(struct vnode *vp)
#endif
}
+void
+vrefactn(struct vnode *vp, u_int n)
+{
+
+ CTR2(KTR_VFS, "%s: vp %p", __func__, vp);
+#ifdef INVARIANTS
+ int old = atomic_fetchadd_int(&vp->v_usecount, n);
+ VNASSERT(old > 0, vp, ("%s: wrong use count %d", __func__, old));
+#else
+ atomic_add_int(&vp->v_usecount, n);
+#endif
+}
+
/*
* Return reference count of a vnode.
*
Modified: head/sys/sys/vnode.h
==============================================================================
--- head/sys/sys/vnode.h Sat Feb 1 06:39:10 2020 (r357357)
+++ head/sys/sys/vnode.h Sat Feb 1 06:39:49 2020 (r357358)
@@ -900,6 +900,7 @@ void vrele(struct vnode *vp);
void vref(struct vnode *vp);
void vrefl(struct vnode *vp);
void vrefact(struct vnode *vp);
+void vrefactn(struct vnode *vp, u_int n);
int vrefcnt(struct vnode *vp);
void v_addpollinfo(struct vnode *vp);
More information about the svn-src-head
mailing list