A vnode is inactivated if it is removed. However, this results in the vnode and
zfs cleanup being done in two places, which can be a problem.
The call-path for vnode_inactivate seems to only come via vnode_remove. After
the inactivate, there is a lock which gets acquired (via vn->v_lock) and flags
(vn->v_lflag), as well as cache removal (vp->v_cred, vp->v_ncchildren,
vp->v_nclinks)
If we drop the ZFS content at the point of removal, and then avoid any
references to the zfs specifics in vnop_inactivate, we might not have the
collisions we see at the moment.
Original issue reported on code.google.com by alex.ble...@gmail.com on 18 Feb 2011 at 12:39
Original issue reported on code.google.com by
alex.ble...@gmail.com
on 18 Feb 2011 at 12:39