File:  [DragonFly] / src / share / man / man9 / VOP_INACTIVE.9
Revision 1.3: download - view: text, annotated - select for diffs
Sun Jul 27 05:36:06 2003 UTC (11 years ago) by hmp
Branches: MAIN
CVS tags: HEAD
mdoc(7) assorted fixes:

	- Nuke usage of .Ar from Section 9.  The `.Ar' macro
	  should only be used for userland manual pages.

	- Replace usage of `.Ar' with `.Va' or `.Vt' as necessary.

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