121642577SAlfred Perlstein.\" 221642577SAlfred Perlstein.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved. 321642577SAlfred Perlstein.\" 421642577SAlfred Perlstein.\" Redistribution and use in source and binary forms, with or without 521642577SAlfred Perlstein.\" modification, are permitted provided that the following conditions 621642577SAlfred Perlstein.\" are met: 721642577SAlfred Perlstein.\" 1. Redistributions of source code must retain the above copyright 821642577SAlfred Perlstein.\" notice(s), this list of conditions and the following disclaimer as 921642577SAlfred Perlstein.\" the first lines of this file unmodified other than the possible 1021642577SAlfred Perlstein.\" addition of one or more copyright notices. 1121642577SAlfred Perlstein.\" 2. Redistributions in binary form must reproduce the above copyright 1221642577SAlfred Perlstein.\" notice(s), this list of conditions and the following disclaimer in the 1321642577SAlfred Perlstein.\" documentation and/or other materials provided with the distribution. 1421642577SAlfred Perlstein.\" 1521642577SAlfred Perlstein.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY 1621642577SAlfred Perlstein.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1721642577SAlfred Perlstein.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1821642577SAlfred Perlstein.\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY 1921642577SAlfred Perlstein.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 2021642577SAlfred Perlstein.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 2121642577SAlfred Perlstein.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 2221642577SAlfred Perlstein.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2321642577SAlfred Perlstein.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2421642577SAlfred Perlstein.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 2521642577SAlfred Perlstein.\" DAMAGE. 2621642577SAlfred Perlstein.\" 2721642577SAlfred Perlstein.\" $FreeBSD$ 2821642577SAlfred Perlstein.\" 298ad9c323SMaxim Konovalov.Dd April 1, 2007 3021642577SAlfred Perlstein.Dt VHOLD 9 3121642577SAlfred Perlstein.Os 3221642577SAlfred Perlstein.Sh NAME 338ad9c323SMaxim Konovalov.Nm vhold , vdrop , vdropl 341f620c2eSRuslan Ermilov.Nd "acquire/release a hold on a vnode" 3521642577SAlfred Perlstein.Sh SYNOPSIS 3621642577SAlfred Perlstein.In sys/param.h 3721642577SAlfred Perlstein.In sys/vnode.h 3821642577SAlfred Perlstein.Ft void 3921642577SAlfred Perlstein.Fn vhold "struct vnode *vp" 4021642577SAlfred Perlstein.Ft void 41b03ee585SChad David.Fn vholdl "struct vnode *vp" 42b03ee585SChad David.Ft void 4321642577SAlfred Perlstein.Fn vdrop "struct vnode *vp" 448ad9c323SMaxim Konovalov.Ft void 458ad9c323SMaxim Konovalov.Fn vdropl "struct vnode *vp" 4621642577SAlfred Perlstein.Sh DESCRIPTION 4721642577SAlfred PerlsteinThe 4821642577SAlfred Perlstein.Fn vhold 49b03ee585SChad Davidand 50b03ee585SChad David.Fn vholdl 51b03ee585SChad Davidfunctions increment the 521f620c2eSRuslan Ermilov.Va v_holdcnt 531f620c2eSRuslan Ermilovof the given vnode. 541f620c2eSRuslan ErmilovIf the vnode has already been added to the free list and is still referenced, 5521642577SAlfred Perlsteinit will be removed. 5621642577SAlfred Perlstein.Pp 5721642577SAlfred PerlsteinThe 5821642577SAlfred Perlstein.Fn vdrop 598ad9c323SMaxim Konovalovand 608ad9c323SMaxim Konovalov.Fn vdropl 618ad9c323SMaxim Konovalovfunctions decrement the 621f620c2eSRuslan Ermilov.Va v_holdcnt 631f620c2eSRuslan Ermilovof the vnode. 640167ce0dSCraig RodriguesIf the holdcount is less than or equal to zero prior to calling 658ad9c323SMaxim Konovalov.Fn vdrop 668ad9c323SMaxim Konovalovor 678ad9c323SMaxim Konovalov.Fn vdropl , 6821642577SAlfred Perlsteinthe system will panic. 690167ce0dSCraig RodriguesIf the vnode is no longer referenced, it will be freed. 708ad9c323SMaxim Konovalov.Pp 71b03ee585SChad David.Fn vhold 72b03ee585SChad Davidand 738ad9c323SMaxim Konovalov.Fn vdrop 74b03ee585SChad Davidlock the vnode interlock while 75b03ee585SChad David.Fn vholdl 768ad9c323SMaxim Konovalovand 778ad9c323SMaxim Konovalov.Fn vdropl 78b03ee585SChad Davidexpect the interlock to already be held. 7921642577SAlfred Perlstein.Sh SEE ALSO 80b03ee585SChad David.Xr vnode 9 8121642577SAlfred Perlstein.Sh AUTHORS 82571dba6eSHiten PandyaThis manual page was written by 83*8a7314fcSBaptiste Daroussin.An Chad David Aq Mt davidc@acns.ab.ca . 84