diff options
author | rwatson <rwatson@FreeBSD.org> | 2005-09-13 09:23:22 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2005-09-13 09:23:22 +0000 |
commit | 2bda369cf85119da23cd4f7a61caaa0c9b4c6038 (patch) | |
tree | 1b5d6e10e489ff3c79eb90ca411d319b98eaab24 /sys/fs/fifofs | |
parent | 75a715050f87386497a7f42ddef4cb4bf0eab5c0 (diff) | |
download | FreeBSD-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.c | 12 |
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) { |