VOP_INACTIVE, VOP_RECLAIM -- reclaim file system resources for a vnode
#include <sys/param.h>
#include <sys/vnode.h>
int
VOP_INACTIVE(struct vnode *vp, struct thread *td);
int
VOP_RECLAIM(struct vnode *vp, struct thread *td);
The arguments are:
vp the vnode being reclaimed
VOP_INACTIVE() 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 file system is being forcibly unmounted while there are open files.
It can be used to reclaim space for `open but deleted' files.
VOP_RECLAIM() is called when a vnode is being reused for a different file
system. Any file system 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, struct thread *td)
{
if (link count of vp == 0) {
/*
* Reclaim space in file system for vp.
*/
...;
}
VOP_UNLOCK(vp, 0, td);
return 0;
}
int
vop_reclaim(struct vnode *vp, struct thread *td)
{
/*
* Clean out the name cache.
*/
cache_purge(vp);
/*
* Free file system related data.
*/
...;
return 0;
}
vnode(9)
This man page was written by Doug Rabson.
FreeBSD 5.2.1 July 24, 1996 FreeBSD 5.2.1 [ Back ] |