Remove the remnants of the leftover selinfo from vnode(9) layer. Just mechanical replacement because knote(9) API is already used. I don't want make klist MP safe with this diff.
<sys/selinfo.h> headers added where is was required. Disabled tmpsfs was also tested. ok? Index: sys/dev/hotplug.c =================================================================== RCS file: /cvs/src/sys/dev/hotplug.c,v retrieving revision 1.22 diff -u -p -r1.22 hotplug.c --- sys/dev/hotplug.c 2 Jul 2022 08:50:41 -0000 1.22 +++ sys/dev/hotplug.c 7 Sep 2023 18:50:50 -0000 @@ -26,6 +26,7 @@ #include <sys/hotplug.h> #include <sys/ioctl.h> #include <sys/vnode.h> +#include <sys/selinfo.h> #define HOTPLUG_MAXEVENTS 64 Index: sys/dev/wscons/wseventvar.h =================================================================== RCS file: /cvs/src/sys/dev/wscons/wseventvar.h,v retrieving revision 1.11 diff -u -p -r1.11 wseventvar.h --- sys/dev/wscons/wseventvar.h 2 Jul 2022 08:50:42 -0000 1.11 +++ sys/dev/wscons/wseventvar.h 7 Sep 2023 18:50:51 -0000 @@ -72,6 +72,7 @@ */ #include <sys/sigio.h> +#include <sys/selinfo.h> /* * Internal "wscons_event" queue interface for the keyboard and mouse drivers. Index: sys/isofs/cd9660/cd9660_vnops.c =================================================================== RCS file: /cvs/src/sys/isofs/cd9660/cd9660_vnops.c,v retrieving revision 1.94 diff -u -p -r1.94 cd9660_vnops.c --- sys/isofs/cd9660/cd9660_vnops.c 8 Mar 2023 04:43:08 -0000 1.94 +++ sys/isofs/cd9660/cd9660_vnops.c 7 Sep 2023 18:50:51 -0000 @@ -961,7 +961,7 @@ cd9660_kqfilter(void *v) kn->kn_hook = (caddr_t)vp; - klist_insert_locked(&vp->v_selectinfo.si_note, kn); + klist_insert_locked(&vp->v_klist, kn); return (0); } @@ -971,7 +971,7 @@ filt_cd9660detach(struct knote *kn) { struct vnode *vp = (struct vnode *)kn->kn_hook; - klist_remove_locked(&vp->v_selectinfo.si_note, kn); + klist_remove_locked(&vp->v_klist, kn); } int Index: sys/miscfs/fuse/fuse_device.c =================================================================== RCS file: /cvs/src/sys/miscfs/fuse/fuse_device.c,v retrieving revision 1.38 diff -u -p -r1.38 fuse_device.c --- sys/miscfs/fuse/fuse_device.c 29 Aug 2022 06:08:04 -0000 1.38 +++ sys/miscfs/fuse/fuse_device.c 7 Sep 2023 18:50:51 -0000 @@ -25,6 +25,7 @@ #include <sys/statvfs.h> #include <sys/vnode.h> #include <sys/fusebuf.h> +#include <sys/selinfo.h> #include "fusefs_node.h" #include "fusefs.h" Index: sys/miscfs/fuse/fuse_vnops.c =================================================================== RCS file: /cvs/src/sys/miscfs/fuse/fuse_vnops.c,v retrieving revision 1.66 diff -u -p -r1.66 fuse_vnops.c --- sys/miscfs/fuse/fuse_vnops.c 26 Jun 2022 05:20:42 -0000 1.66 +++ sys/miscfs/fuse/fuse_vnops.c 7 Sep 2023 18:50:51 -0000 @@ -154,7 +154,7 @@ fusefs_kqfilter(void *v) kn->kn_hook = (caddr_t)vp; - klist_insert_locked(&vp->v_selectinfo.si_note, kn); + klist_insert_locked(&vp->v_klist, kn); return (0); } @@ -164,7 +164,7 @@ filt_fusefsdetach(struct knote *kn) { struct vnode *vp = (struct vnode *)kn->kn_hook; - klist_remove_locked(&vp->v_selectinfo.si_note, kn); + klist_remove_locked(&vp->v_klist, kn); } int Index: sys/msdosfs/msdosfs_vnops.c =================================================================== RCS file: /cvs/src/sys/msdosfs/msdosfs_vnops.c,v retrieving revision 1.139 diff -u -p -r1.139 msdosfs_vnops.c --- sys/msdosfs/msdosfs_vnops.c 23 Aug 2022 20:37:16 -0000 1.139 +++ sys/msdosfs/msdosfs_vnops.c 7 Sep 2023 18:50:51 -0000 @@ -1970,7 +1970,7 @@ msdosfs_kqfilter(void *v) kn->kn_hook = (caddr_t)vp; - klist_insert_locked(&vp->v_selectinfo.si_note, kn); + klist_insert_locked(&vp->v_klist, kn); return (0); } @@ -1980,7 +1980,7 @@ filt_msdosfsdetach(struct knote *kn) { struct vnode *vp = (struct vnode *)kn->kn_hook; - klist_remove_locked(&vp->v_selectinfo.si_note, kn); + klist_remove_locked(&vp->v_klist, kn); } int Index: sys/nfs/nfs_kq.c =================================================================== RCS file: /cvs/src/sys/nfs/nfs_kq.c,v retrieving revision 1.35 diff -u -p -r1.35 nfs_kq.c --- sys/nfs/nfs_kq.c 8 Mar 2023 04:43:09 -0000 1.35 +++ sys/nfs/nfs_kq.c 7 Sep 2023 18:50:51 -0000 @@ -185,7 +185,7 @@ filt_nfsdetach(struct knote *kn) { struct vnode *vp = (struct vnode *)kn->kn_hook; - klist_remove_locked(&vp->v_selectinfo.si_note, kn); + klist_remove_locked(&vp->v_klist, kn); /* Remove the vnode from watch list */ if ((kn->kn_flags & (__EV_POLL | __EV_SELECT)) == 0) @@ -342,7 +342,7 @@ nfs_kqfilter(void *v) return (error); } - klist_insert_locked(&vp->v_selectinfo.si_note, kn); + klist_insert_locked(&vp->v_klist, kn); return (0); } Index: sys/sys/vnode.h =================================================================== RCS file: /cvs/src/sys/sys/vnode.h,v retrieving revision 1.168 diff -u -p -r1.168 vnode.h --- sys/sys/vnode.h 10 Feb 2023 14:34:17 -0000 1.168 +++ sys/sys/vnode.h 7 Sep 2023 18:50:51 -0000 @@ -38,7 +38,7 @@ #include <sys/buf.h> #include <sys/types.h> #include <sys/queue.h> -#include <sys/selinfo.h> +#include <sys/event.h> #include <sys/tree.h> /* @@ -127,7 +127,7 @@ struct vnode { TAILQ_HEAD(, namecache) v_cache_dst; /* cache entries to us */ void *v_data; /* private data for fs */ - struct selinfo v_selectinfo; /* identity of poller(s) */ + struct klist v_klist; /* identity of poller(s) */ }; #define v_mountedhere v_un.vu_mountedhere #define v_socket v_un.vu_socket @@ -246,7 +246,7 @@ extern int vttoif_tab[]; #define VATTR_NULL(vap) vattr_null(vap) #define NULLVP ((struct vnode *)NULL) #define VN_KNOTE(vp, b) \ - knote_locked(&vp->v_selectinfo.si_note, (b)) + knote_locked(&vp->v_klist, (b)) /* * Global vnode data. Index: sys/tmpfs/tmpfs_vnops.c =================================================================== RCS file: /cvs/src/sys/tmpfs/tmpfs_vnops.c,v retrieving revision 1.52 diff -u -p -r1.52 tmpfs_vnops.c --- sys/tmpfs/tmpfs_vnops.c 26 Jun 2022 05:20:42 -0000 1.52 +++ sys/tmpfs/tmpfs_vnops.c 7 Sep 2023 18:50:51 -0000 @@ -2627,7 +2627,7 @@ tmpfs_kqfilter(void *v) kn->kn_hook = (caddr_t)vp; - klist_insert_locked(&vp->v_selectinfo.si_note, kn); + klist_insert_locked(&vp->v_klist, kn); return (0); } @@ -2637,7 +2637,7 @@ filt_tmpfsdetach(struct knote *kn) { struct vnode *vp = (struct vnode *)kn->kn_hook; - klist_remove_locked(&vp->v_selectinfo.si_note, kn); + klist_remove_locked(&vp->v_klist, kn); } int Index: sys/ufs/ufs/ufs_vnops.c =================================================================== RCS file: /cvs/src/sys/ufs/ufs/ufs_vnops.c,v retrieving revision 1.157 diff -u -p -r1.157 ufs_vnops.c --- sys/ufs/ufs/ufs_vnops.c 8 Mar 2023 04:43:09 -0000 1.157 +++ sys/ufs/ufs/ufs_vnops.c 7 Sep 2023 18:50:51 -0000 @@ -1921,7 +1921,7 @@ ufs_kqfilter(void *v) kn->kn_hook = (caddr_t)vp; - klist_insert_locked(&vp->v_selectinfo.si_note, kn); + klist_insert_locked(&vp->v_klist, kn); return (0); } @@ -1931,7 +1931,7 @@ filt_ufsdetach(struct knote *kn) { struct vnode *vp = (struct vnode *)kn->kn_hook; - klist_remove_locked(&vp->v_selectinfo.si_note, kn); + klist_remove_locked(&vp->v_klist, kn); } int