diff --git a/sys/kern/uipc_mqueue.c b/sys/kern/uipc_mqueue.c index 488650190a3..354564b080f 100644 --- a/sys/kern/uipc_mqueue.c +++ b/sys/kern/uipc_mqueue.c @@ -714,7 +714,9 @@ do_recycle(void *context, int pending __unused) { struct vnode *vp = (struct vnode *)context; + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); vrecycle(vp); + VOP_UNLOCK(vp, 0); vdrop(vp); }