diff options
Diffstat (limited to 'share/man/man9/vrele.9')
-rw-r--r-- | share/man/man9/vrele.9 | 54 |
1 files changed, 47 insertions, 7 deletions
diff --git a/share/man/man9/vrele.9 b/share/man/man9/vrele.9 index be5d5f7..8d28d5e 100644 --- a/share/man/man9/vrele.9 +++ b/share/man/man9/vrele.9 @@ -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 . |