Module Name: src
Committed By: rmind
Date: Tue Jun 14 00:56:02 UTC 2011
Modified Files:
src/share/man/man9: vnode.9
Log Message:
Update getnewvnode(9) description.
To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/share/man/man9/vnode.9
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/share/man/man9/vnode.9
diff -u src/share/man/man9/vnode.9:1.52 src/share/man/man9/vnode.9:1.53
--- src/share/man/man9/vnode.9:1.52 Tue Apr 26 11:32:38 2011
+++ src/share/man/man9/vnode.9 Tue Jun 14 00:56:02 2011
@@ -1,4 +1,4 @@
-.\" $NetBSD: vnode.9,v 1.52 2011/04/26 11:32:38 hannken Exp $
+.\" $NetBSD: vnode.9,v 1.53 2011/06/14 00:56:02 rmind 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 April 26, 2011
+.Dd June 14, 2011
.Dt VNODE 9
.Os
.Sh NAME
@@ -74,7 +74,8 @@
.Ft void
.Fn holdrele "struct vnode *vp"
.Ft int
-.Fn getnewvnode "enum vtagtype tag" "struct mount *mp" "int (**vops)(void *)" "struct vnode **vpp"
+.Fn getnewvnode "enum vtagtype tag" "struct mount *mp" "int (**vops)(void *)" \
+"kmutex_t *slock" "struct vnode **vpp"
.Ft void
.Fn ungetnewvnode "struct vnode *vp"
.Ft int
@@ -564,7 +565,7 @@
as inactive by decrementing
.Em vp-\*[Gt]v_holdcnt
and moving the vnode from the holdlist to the freelist.
-.It Fn getnewvnode "tag" "mp" "vops" "vpp"
+.It Fn getnewvnode "tag" "mp" "vops" "slock" "vpp"
Retrieve the next vnode from the freelist.
.Fn getnewvnode
must choose whether to allocate a new vnode or recycle an existing
@@ -595,6 +596,13 @@
vnode.
If a vnode is successfully retrieved zero is returned, otherwise an
appropriate error code is returned.
+If
+.Fa slock
+is not NULL, it specifies the lock to share for
+.Em v_interlock .
+The reference will be held on the lock and sharing noted.
+Reference will be released and lock unshared when the vnode gets recycled.
+If NULL (regular case), vnode will use its own interlock.
.It Fn ungetnewvnode "vp"
Undo the operation of
.Fn getnewvnode .