vgone9
Prepare a vnode for reuse
Usage
#include <sys/param.h>
#include <sys/vnode.h>
void
vgone(struct vnode *vp);
void
vgonel(struct vnode *vp, struct thread *td);
Overview
vgone() and vgonel() prepare a vnode for reuse by another file system. The preparation includes the cleaning of all file system specific data and the removal from its mount point vnode list.
If the vnode has a v_usecount of zero, and its VDOOMED flag is not set, it is moved to the head of the free list as in most cases the vnode is about to be reused, or its file system being unmounted.
The difference between vgone() and vgonel() is that vgone() locks the vnode interlock and then calls vgonel() while vgonel() expects the interlock to already be locked.