diff -r 5269e34e9860 sys/kern/vfs_vnode.c
--- sys/kern/vfs_vnode.c	Mon Mar 07 15:37:02 2022 +0100
+++ sys/kern/vfs_vnode.c	Tue Mar 08 10:52:56 2022 +0100
@@ -898,6 +898,12 @@ retry:
 	}
 	KASSERT(lktype == LK_EXCLUSIVE);
 
+	/* If the node gained another reference, retry. */
+	use = atomic_load_relaxed(&vp->v_usecount);
+	if ((use & VUSECOUNT_VGET) != 0 || (use & VUSECOUNT_MASK) != 1) {
+		goto retry;
+	}
+
 	if ((vp->v_iflag & (VI_TEXT|VI_EXECMAP|VI_WRMAP)) != 0 ||
 	    (vp->v_vflag & VV_MAPPED) != 0) {
 		/* Take care of space accounting. */
