extern int prtactive;
ext2fs_inactive(v)	void *v;{   	struct vop_inactive_args /* {		struct vnode *a_vp;		struct proc *a_p;	} */ *ap = v;	struct vnode *vp = ap->a_vp;	struct inode *ip = VTOI(vp);	struct proc *p = ap->a_p;	struct timespec ts;	int error = 0;		if (prtactive && vp->v_usecount != 0)		vprint("ext2fs_inactive: pushing active", vp);	/* Get rid of inodes related to stale file handles. */	if (ip->i_e2fs_mode == 0 || ip->i_e2fs_dtime != 0)		goto out;	error = 0;	if (ip->i_e2fs_nlink == 0 && (vp->v_mount->mnt_flag & MNT_RDONLY) == 0) {		if (ip->i_e2fs_size != 0) {			error = ext2fs_truncate(ip, (off_t)0, 0, NOCRED);		}		TIMEVAL_TO_TIMESPEC(&time, &ts);		ip->i_e2fs_dtime = ts.tv_sec;		ip->i_flag |= IN_CHANGE | IN_UPDATE;		ext2fs_inode_free(ip, ip->i_number, ip->i_e2fs_mode);	}	if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) {		ext2fs_update(ip, NULL, NULL, 0);	}out:	VOP_UNLOCK(vp, 0, p);	/*	 * If we are done with the inode, reclaim it	 * so that it can be reused immediately.	 */	if (ip->i_e2fs_dtime != 0)		vrecycle(vp, NULL, p);	return (error);}   