On Sat, May 16, 2026 at 04:13:06PM +0200, Dag-Erling Smørgrav wrote: > Dag-Erling Smørgrav <[email protected]> writes: > > Konstantin Belousov <[email protected]> writes: > > > --- a/sys/kern/vfs_subr.c > > > +++ b/sys/kern/vfs_subr.c > > > @@ -6509,7 +6509,7 @@ vop_read_post(void *ap, int rc) > > > struct vop_read_args *a = ap; > > > > > > if (!rc) { > > > - VFS_KNOTE_LOCKED(a->a_vp, NOTE_READ); > > > + VN_KNOTE_LOCKED(a->a_vp, NOTE_READ); > > Did you mean to use VN_KNOTE_UNLOCKED() here... > > Probably not, as that resulted in a panic... Try this instead
commit 4ef4999153389a423954fbf4c3d2e679fb96e110 Author: Konstantin Belousov <[email protected]> Date: Sat May 16 22:11:43 2026 +0300 sys/mount.h: restore KNF_NOKQLOCK in VFS_KNOTE_{,UN}LOCKED ZFS needs to take internal sleepable lock in its implementation of VOP_GETATTR(). Due to this, kq must be unlocked around calls to the vfs filter methods. Fixes: 1d5e4020e36e1cc9e906200c9c3c784ef43d977e diff --git a/sys/sys/mount.h b/sys/sys/mount.h index d6696bba0a4f..2e880bac9068 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -968,8 +968,8 @@ static inline void VFS_KNOTE_LOCKED(struct vnode *vp, int hint) { if ((vn_irflag_read(vp) & VIRF_KNOTE) != 0) { - KNOTE_LOCKED(&vp->v_pollinfo->vpi_selinfo.si_note, - hint); + KNOTE(&vp->v_pollinfo->vpi_selinfo.si_note, + hint, KNF_LISTLOCKED | KNF_NOKQLOCK); } } @@ -977,8 +977,8 @@ static inline void VFS_KNOTE_UNLOCKED(struct vnode *vp, int hint) { if ((vn_irflag_read(vp) & VIRF_KNOTE) != 0) { - KNOTE_UNLOCKED(&vp->v_pollinfo->vpi_selinfo.si_note, - hint); + KNOTE(&vp->v_pollinfo->vpi_selinfo.si_note, + hint, KNF_NOKQLOCK); } }
