File:  [DragonFly] / src / share / man / man9 / VOP_INACTIVE.9
Revision 1.4: download - view: text, annotated - select for diffs
Tue Jun 1 11:36:53 2004 UTC (9 years, 10 months ago) by hmp
Branches: MAIN
CVS tags: HEAD, DragonFly_Stable, DragonFly_Snap29Sep2004, DragonFly_Snap13Sep2004, DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8, DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6, DragonFly_RELEASE_1_4_Slip, DragonFly_RELEASE_1_4, DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2, DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12, DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10, DragonFly_Preview, DragonFly_1_0_REL, DragonFly_1_0_RC1, DragonFly_1_0A_REL
Remove '-*- nroff -*-'.

Lets make a habit not to put editor-related magic into our base
files.  They are redundant and useless.

    1: .\" Copyright (c) 1996 Doug Rabson
    2: .\"
    3: .\" All rights reserved.
    4: .\"
    5: .\" This program is free software.
    6: .\"
    7: .\" Redistribution and use in source and binary forms, with or without
    8: .\" modification, are permitted provided that the following conditions
    9: .\" are met:
   10: .\" 1. Redistributions of source code must retain the above copyright
   11: .\"    notice, this list of conditions and the following disclaimer.
   12: .\" 2. Redistributions in binary form must reproduce the above copyright
   13: .\"    notice, this list of conditions and the following disclaimer in the
   14: .\"    documentation and/or other materials provided with the distribution.
   15: .\"
   16: .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR
   17: .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   18: .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
   19: .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT,
   20: .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   21: .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
   22: .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
   23: .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   24: .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
   25: .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   26: .\"
   27: .\" $FreeBSD: src/share/man/man9/VOP_INACTIVE.9,v 1.5.2.3 2001/12/17 11:30:18 ru Exp $
   28: .\" $DragonFly: src/share/man/man9/VOP_INACTIVE.9,v 1.4 2004/06/01 11:36:53 hmp Exp $
   29: .\"
   30: .Dd July 24, 1996
   31: .Os
   32: .Dt VOP_INACTIVE 9
   33: .Sh NAME
   34: .Nm VOP_INACTIVE ,
   35: .Nm VOP_RECLAIM
   36: .Nd reclaim filesystem resources for a vnode
   37: .Sh SYNOPSIS
   38: .In sys/param.h
   39: .In sys/vnode.h
   40: .Ft int
   41: .Fn VOP_INACTIVE "struct vnode *vp" "struct proc *p"
   42: .Ft int
   43: .Fn VOP_RECLAIM "struct vnode *vp" "struct proc *p"
   44: .Sh DESCRIPTION
   45: The arguments are:
   46: .Bl -tag -width 2n
   47: .It Fa vp
   48: the vnode being reclaimed
   49: .El
   50: .Pp
   51: .Xr VOP_INACTIVE 9
   52: is called when the kernel is no longer using the vnode.  This may be
   53: because the reference count reaches zero or it may be that the
   54: filesystem is being forcibly unmounted while there are open files.
   55: It can be used to reclaim space for 'open but deleted' files.
   56: .Xr VOP_RECLAIM 9
   57: is called when a vnode is being reused for a different filesystem.
   58: Any filesystem specific resources associated with the vnode should be
   59: freed.
   60: .Sh LOCKS
   61: For VOP_INACTIVE, the vp will be locked on entry.  Your VOP_INACTIVE code
   62: must unlock the vp prior to returning.
   63: .Pp
   64: For VOP_RECLAIM, the vp will not be locked on entry and should be left
   65: unlocked on return.
   66: .Sh PSEUDOCODE
   67: .Bd -literal
   68: int
   69: vop_inactive(struct vnode *vp)
   70: {
   71:     if (link count of vp == 0) {
   72: 	/*
   73: 	 * Reclaim space in filesystem for vp.
   74: 	 */
   75: 	...;
   76:     }
   77:     VOP_UNLOCK(vp, 0, p);
   78: 
   79:     return 0;
   80: }
   81: 
   82: int
   83: vop_reclaim(struct vnode *vp)
   84: {
   85:     /*
   86:      * Clean out the name cache.
   87:      */
   88:     cache_purge(vp);
   89: 
   90:     /*
   91:      * Free filesystem-related data.
   92:      */
   93:     ...;
   94: 
   95:     return 0;
   96: }
   97: .Ed
   98: .Sh SEE ALSO
   99: .Xr vnode 9
  100: .Sh AUTHORS
  101: This man page was written by
  102: .An Doug Rabson .