Could you build a custom kernel with this change:
src/sys/kern/vfs_vnode.c around line 645
if ((vp->v_type == VBLK || vp->v_type == VCHR) &&
vp->v_specnode != NULL && vp->v_specnode->sn_opencnt != 0) {
+ printf("dev %d, %d\n", major(vp->v_specnode->sn_rdev),
+ minor(vp->v_specnode->sn_rdev));
vprint("vrelel: missing VOP_CLOSE()", vp);
}
This should print the device (major, minor) missing a close.
Which device?
Always the same?
Thanks! The culprit was a wedge assigned to a partition with size 0 (I had set the partition type to "unknown" instead of "unused" when removing it). After properly deleting this partition and wedge, everything works as it should.