see the commentary in the patch```
commit 0978cc1c2b53ba1cce573e62b6807ca6a5efb9c3 (HEAD -> vdrop_def3)
Author: Mateusz Guzik <mjg@FreeBSD.org>
Date: Fri Sep 19 18:22:12 2025 +0000
the patch has a debug crapper to vfs: make sure it works at all, i have not tried to genuinely trigger the racevnodes are not getting freed when they are locked
survives building the kernel and whatnot with debug on The layer has an entrenched expectation that it is fine to unlock a
vnode while no longer holding a reference on it. While this happens to
work of the time, this can race against other threads releasing
references.
For example in vput:
if (!refcount_release(&vp->v_usecount)) {
VOP_UNLOCK(vp);
return;
}
Another thread can race the unlock to call vput_final and eventually
reture the vnode, before VOP_UNLOCK manages to finish. See the commit
for a more detailed explanation.
Fix the problem by waiting for locked operation to drain.
commit 416a19154df649ababf8bae04ed741e165df137d
Author: Mateusz Guzik <mjg@FreeBSD.org>
Date: Mon Sep 22 14:09:51 2025 +0000
vfs: reduce indentation in vput_final
nfc
```