mirror of
https://git.FreeBSD.org/src.git
synced 2024-11-25 07:49:18 +00:00
Document vunref(9), add some important notes for vrele(9) and vput(9).
Merge all three manpages to one, removing separate file for vput(9). MFC after: 1 week
This commit is contained in:
parent
3f562cce40
commit
251e7dbf42
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=213983
@ -364,7 +364,6 @@ MAN= accept_filter.9 \
|
||||
VOP_STRATEGY.9 \
|
||||
VOP_VPTOCNP.9 \
|
||||
VOP_VPTOFH.9 \
|
||||
vput.9 \
|
||||
vref.9 \
|
||||
vrefcnt.9 \
|
||||
vrele.9 \
|
||||
@ -1366,6 +1365,8 @@ MLINKS+=VOP_RDWR.9 VOP_READ.9 \
|
||||
VOP_RDWR.9 VOP_WRITE.9
|
||||
MLINKS+=VOP_REMOVE.9 VOP_RMDIR.9
|
||||
MLINKS+=vref.9 VREF.9
|
||||
MLINKS+=vrele.9 vput.9 \
|
||||
vrele.9 vunref.9
|
||||
MLINKS+=vslock.9 vsunlock.9
|
||||
MLINKS+=zero_copy.9 zero_copy_sockets.9
|
||||
MLINKS+=zone.9 uma.9 \
|
||||
|
@ -1,63 +0,0 @@
|
||||
.\" -*- nroff -*-
|
||||
.\"
|
||||
.\" Copyright (c) 1996 Doug Rabson
|
||||
.\"
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This program is free software.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
|
||||
.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||
.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||
.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd July 24, 1996
|
||||
.Dt VPUT 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vput
|
||||
.Nd "decrement the use count for a vnode and unlock it"
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/vnode.h
|
||||
.Ft void
|
||||
.Fn vput "struct vnode *vp"
|
||||
.Sh DESCRIPTION
|
||||
Decrement the
|
||||
.Va v_usecount
|
||||
field of a vnode and unlock the vnode.
|
||||
.Bl -tag -width 2n
|
||||
.It Fa vp
|
||||
the vnode to decrement
|
||||
.El
|
||||
.Pp
|
||||
This operation is functionally equivalent to calling
|
||||
.Xr VOP_UNLOCK 9
|
||||
followed by
|
||||
.Xr vrele 9 .
|
||||
.Sh SEE ALSO
|
||||
.Xr vnode 9 ,
|
||||
.Xr VOP_UNLOCK 9 ,
|
||||
.Xr vref 9 ,
|
||||
.Xr vrele 9,
|
||||
.Xr vrefcnt 9
|
||||
.Sh AUTHORS
|
||||
This manual page was written by
|
||||
.An Doug Rabson .
|
@ -1,6 +1,7 @@
|
||||
.\" -*- nroff -*-
|
||||
.\"
|
||||
.\" Copyright (c) 1996 Doug Rabson
|
||||
.\" Copyright (c) 2010 Konstantin Belousov <kib@FreeBSD.org>
|
||||
.\"
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
@ -28,17 +29,23 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd July 24, 1996
|
||||
.Dd October 17, 2010
|
||||
.Dt VRELE 9
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm vrele
|
||||
.Nm vput ,
|
||||
.Nm vrele ,
|
||||
.Nm vunref
|
||||
.Nd decrement the use count for a vnode
|
||||
.Sh SYNOPSIS
|
||||
.In sys/param.h
|
||||
.In sys/vnode.h
|
||||
.Ft void
|
||||
.Fn vput "struct vnode *vp"
|
||||
.Ft void
|
||||
.Fn vrele "struct vnode *vp"
|
||||
.Ft void
|
||||
.Fn vunref "struct vnode *vp"
|
||||
.Sh DESCRIPTION
|
||||
Decrement the
|
||||
.Va v_usecount
|
||||
@ -48,18 +55,51 @@ field of a vnode.
|
||||
the vnode to decrement
|
||||
.El
|
||||
.Pp
|
||||
Any code in the system which is using a vnode should call
|
||||
The
|
||||
.Fn vrele
|
||||
when it is finished with the vnode.
|
||||
function takes an unlocked vnode and returns with the vnode unlocked.
|
||||
.Pp
|
||||
.The
|
||||
.Fn vput
|
||||
function should be given a locked vnode as argument, the vnode is unlocked
|
||||
after the function returned.
|
||||
The
|
||||
.Fn vput
|
||||
is operationally equivalent to calling
|
||||
.Xr VOP_UNLOCK 9
|
||||
followed by
|
||||
.Xr vrele 9 ,
|
||||
with less overhead.
|
||||
.Pp
|
||||
The
|
||||
.Fn vunref
|
||||
function takes a locked vnode as argument, and returns with the vnode locked.
|
||||
Nonetheless, the
|
||||
.Fn vunref
|
||||
might drop the vnode lock during the operation, so caller should not expect
|
||||
that non-doomed vnode is still non-doomed after the function returned.
|
||||
.Pp
|
||||
Any code in the system which signified its use of a vnode by usecount
|
||||
should call one of the listed function to decrement use counter.
|
||||
If the
|
||||
.Va v_usecount
|
||||
field of the vnode reaches zero, then it will be placed on the free list.
|
||||
field of the non-doomed vnode reaches zero, then it will be inactivated
|
||||
and placed on the free list.
|
||||
Since the functions might need to call VOPs for the vnode, the
|
||||
.Va Giant
|
||||
mutex should be conditionally locked around the call.
|
||||
.Pp
|
||||
The hold count for the vnode is always greater or equal to the usecount.
|
||||
Non-forced unmount fails when mount point owns a vnode that has non-zero
|
||||
usecount, see
|
||||
.Xr vflush 9 .
|
||||
.Sh SEE ALSO
|
||||
.Xr vget 9 ,
|
||||
.Xr vnode 9 ,
|
||||
.Xr vput 9 ,
|
||||
.Xr vref 9 ,
|
||||
.Xr vrefcnt 9
|
||||
.Sh AUTHORS
|
||||
This manual page was written by
|
||||
.An Doug Rabson .
|
||||
.An Doug Rabson
|
||||
and
|
||||
.An Konstantin Belousov .
|
||||
|
Loading…
Reference in New Issue
Block a user