DragonFly On-Line Manual Pages

VOP_INACTIVE(9)       DragonFly Kernel Developer's Manual      VOP_INACTIVE(9)


VOP_INACTIVE, VOP_RECLAIM -- reclaim filesystem resources for a vnode


#include <sys/param.h> #include <sys/vnode.h> int VOP_INACTIVE(struct vnode *vp, struct proc *p); int VOP_RECLAIM(struct vnode *vp, struct proc *p);


The arguments are: vp the vnode being reclaimed VOP_INACTIVE(9) is called when the kernel is no longer using the vnode. This may be because the reference count reaches zero or it may be that the filesystem is being forcibly unmounted while there are open files. It can be used to reclaim space for 'open but deleted' files. VOP_RECLAIM(9) is called when a vnode is being reused for a different filesystem. Any filesystem specific resources associated with the vnode should be freed.


For VOP_INACTIVE, the vp will be locked on entry. Your VOP_INACTIVE code must unlock the vp prior to returning. For VOP_RECLAIM, the vp will not be locked on entry and should be left unlocked on return.


int vop_inactive(struct vnode *vp) { if (link count of vp == 0) { /* * Reclaim space in filesystem for vp. */ ...; } VOP_UNLOCK(vp, 0, p); return 0; } int vop_reclaim(struct vnode *vp) { /* * Clean out the name cache. */ cache_purge(vp); /* * Free filesystem-related data. */ ...; return 0; }




This man page was written by Doug Rabson. DragonFly 3.7 July 24, 1996 DragonFly 3.7