Date: Tue, 28 Apr 2020 15:15:23 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 225934] FIFOs lack kevent EVFILT_VNODE support Message-ID: <bug-225934-227-1q5s4A0MuM@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-225934-227@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225934 --- Comment #2 from Jan Kokemüller <jan.kokemueller@gmail.com> --- I've seen some places in sys_pipe.c where operations are delegated to vnode operations (in the fifo case). Could something like the following work? --- a/sys/kern/sys_pipe.c +++ b/sys/kern/sys_pipe.c @@ -1707,6 +1707,10 @@ pipe_kqfilter(struct file *fp, struct knote *kn) cpipe = PIPE_PEER(cpipe); break; default: + if (cpipe->pipe_state & PIPE_NAMED) { + PIPE_UNLOCK(cpipe); + return (vnops.fo_kqfilter(fp, kn)); + } PIPE_UNLOCK(cpipe); return (EINVAL); } Maybe vop_kqfilter/VOP_KQFILTER could be removed completely in favor of vfs_kqfilter() as the only implementation? It looks like this mechanism was only needed to forward *_kqfilter calls to fifo's vop_kqfilter. But now it's done the other way around in a sense. -- You are receiving this mail because: You are the assignee for the bug.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-225934-227-1q5s4A0MuM>
