diff options
author | avg <avg@FreeBSD.org> | 2012-11-04 14:24:00 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2012-11-04 14:24:00 +0000 |
commit | 8e19af80d1e20b3ca15c5fff26300421a7457c8b (patch) | |
tree | 6316c489587fe40e05daae456a15017c320f5f50 | |
parent | 8ba0a4d54b7d64c0dd352d4ddbea9a2b946c7fb9 (diff) | |
download | FreeBSD-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
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c | 9 |
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); } /* |