Bug 225934 - FIFOs lack kevent EVFILT_VNODE support
Summary: FIFOs lack kevent EVFILT_VNODE support
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-bugs mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-15 21:02 UTC by Bryan Drewery
Modified: 2018-02-24 13:34 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bryan Drewery freebsd_committer 2018-02-15 21:02:39 UTC
r150074 had a relevant comment here:
+/*
+ * Because fifos are now a file descriptor layer object, EVFILT_VNODE is not
+ * implemented.  Likely, fifo_kqfilter() should be removed, and
+ * fifo_kqfilter_f() should know how to forward the request to the underling
+ * vnode using f_vnode in the file descriptor here.
+ */

My main interest is in having NOTE_DELETE work.

This impacts tail -F as it tries to use NOTE_DELETE|NOTE_RENAME but gets
EINVAL and then falls into a sleep+stat+read loop.

kevent(4,{ 3,EVFILT_VNODE,EV_ADD|EV_ENABLE|EV_CLEAR,NOTE_DELETE|NOTE_RENAME,0x0,0x0 3,EVFILT_READ,EV_ADD|EV_ENABLE|EV_CLEAR,0x0,0x0,0x0 },2,0x0,0,{ 0.000000000 }) ERR#22 'Invalid argument'