summaryrefslogtreecommitdiffstats
path: root/sys/cddl
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2012-11-04 14:24:00 +0000
committeravg <avg@FreeBSD.org>2012-11-04 14:24:00 +0000
commit8e19af80d1e20b3ca15c5fff26300421a7457c8b (patch)
tree6316c489587fe40e05daae456a15017c320f5f50 /sys/cddl
parent8ba0a4d54b7d64c0dd352d4ddbea9a2b946c7fb9 (diff)
downloadFreeBSD-src-8e19af80d1e20b3ca15c5fff26300421a7457c8b.zip
FreeBSD-src-8e19af80d1e20b3ca15c5fff26300421a7457c8b.tar.gz
zfs_vnode_forget: dispose of larvae vnode using public vfs api (mostly)
Reviewed by: kib MFC after: 19 days
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
index 8b64d34..c2ed964 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
@@ -633,12 +633,11 @@ static void
zfs_vnode_forget(vnode_t *vp)
{
- VOP_UNLOCK(vp, 0);
- VI_LOCK(vp);
- vp->v_usecount--;
- vp->v_iflag |= VI_DOOMED;
+ /* copied from insmntque_stddtr */
vp->v_data = NULL;
- vdropl(vp);
+ vp->v_op = &dead_vnodeops;
+ vgone(vp);
+ vput(vp);
}
/*
OpenPOWER on IntegriCloud