trace nfs_reclaim() at nfs_reclaim+0x150 0xffffffff807f6aa0 vop_reclaim() at vop_reclaim+0x4b 0xffffffff8070b3cb vgone_vxlocked() at vgone_vxlocked+0x266 0xffffffff806f5cf6 vrecycle() at vrecycle+0x48 0xffffffff806f5f08 nfs_inactive() at nfs_inactive+0xfe 0xffffffff807f694e vop_inactive() at vop_inactive+0x4b 0xffffffff8070b30b vrele() at vrele+0x16e 0xffffffff806f6f6e vn_close() at vn_close+0x2d 0xffffffff807095ad fdrop() at fdrop+0x20f 0xffffffff806315df closef() at closef+0x32 0xffffffff80631f22 kern_close() at kern_close+0xef 0xffffffff8063212f syscall2() at syscall2+0x11e 0xffffffff80bd6a9e db> --- later captures (identical) --- v2-fix typelie variant (stock mechanism, fixed-v1 kernel): nfs_reclaim() at nfs_reclaim+0x150 vop_reclaim() at vop_reclaim+0x4b vgone_vxlocked() at vgone_vxlocked+0x266 vrecycle() at vrecycle+0x48 nfs_inactive() at nfs_inactive+0xfe vop_inactive() at vop_inactive+0x4b vrele() at vrele+0x16e vn_close() at vn_close+0x2d fdrop() at fdrop+0x20f closef() at closef+0x32 kern_close() at kern_close+0xef syscall2() at syscall2+0x11e --- fix-v2 dirfh rejection-path panic (flaw in the candidate fix, NOT the original bug) --- panic: lockmgr: LK_RELEASE: no lock held lockmgr_release() at lockmgr_release+0x11a vput() at vput+0x11 vop_compat_nremove() at vop_compat_nremove+0xf7 vop_nremove() at vop_nremove+0x97 sys_unlink() at sys_unlink+0x4c syscall2() at syscall2+0x11e