summaryrefslogtreecommitdiffstats
path: root/sys/fs/fifofs
diff options
context:
space:
mode:
authorrwatson <rwatson@FreeBSD.org>2005-09-13 09:23:22 +0000
committerrwatson <rwatson@FreeBSD.org>2005-09-13 09:23:22 +0000
commit2bda369cf85119da23cd4f7a61caaa0c9b4c6038 (patch)
tree1b5d6e10e489ff3c79eb90ca411d319b98eaab24 /sys/fs/fifofs
parent75a715050f87386497a7f42ddef4cb4bf0eab5c0 (diff)
downloadFreeBSD-src-2bda369cf85119da23cd4f7a61caaa0c9b4c6038.zip
FreeBSD-src-2bda369cf85119da23cd4f7a61caaa0c9b4c6038.tar.gz
Annotate two issues:
1) fifo_kqfilter() is not actually ever used, it likely should be GC'd. 2) fifo_kqfilter_f() doesn't implement EVFILT_VNODE, so detecting events on the underlying vnode for a fifo no longer works (it did in 4.x). Likely, fifo_kqfilter_f() should forward the request to the VFS using fp->f_vnode, which would work once fifo_kqfilter() was detached from the vnode operation vector (removing the fifo override). Discussed with: phk
Diffstat (limited to 'sys/fs/fifofs')
-rw-r--r--sys/fs/fifofs/fifo_vnops.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c
index 6fca95e..f0dfd00 100644
--- a/sys/fs/fifofs/fifo_vnops.c
+++ b/sys/fs/fifofs/fifo_vnops.c
@@ -334,6 +334,12 @@ fifo_ioctl(ap)
return (0);
}
+/*
+ * Currently fifo_kqfilter() isn't reachable beause vop_kqfilter() is only
+ * called for open files, in which case the fifo code has redirected the
+ * caller to fifo_kqfilter_f() via the file descriptor operations vector.
+ * This implementation should be garbage collected.
+ */
/* ARGSUSED */
static int
fifo_kqfilter(ap)
@@ -589,6 +595,12 @@ fifo_ioctl_f(struct file *fp, u_long com, void *data, struct ucred *cred, struct
return (error);
}
+/*
+ * 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.
+ */
static int
fifo_kqfilter_f(struct file *fp, struct knote *kn)
{
OpenPOWER on IntegriCloud