[PATCH] pipe: remove redundant fifo_poll abstraction

From: Pekka Enberg
Date: Fri Aug 26 2005 - 12:55:02 EST


On Fri, 2005-08-26 at 19:16 +0200, Manfred Spraul wrote:
> I would prefer just to remove the abstraction, together with a comment
> that Linux fifos behave exactly like pipes, unlike the behavior of most
> unices.

[PATCH] pipe: remove redundant fifo_poll abstraction

This patch removes a redundant fifo_poll() abstraction from fs/pipe.c and adds
a big fat comment stating we set POLLERR for FIFOs too on Linux unlike most
Unices.

Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx>
---

pipe.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

Index: 2.6-mm/fs/pipe.c
===================================================================
--- 2.6-mm.orig/fs/pipe.c
+++ 2.6-mm/fs/pipe.c
@@ -419,6 +419,10 @@ pipe_poll(struct file *filp, poll_table

if (filp->f_mode & FMODE_WRITE) {
mask |= (nrbufs < PIPE_BUFFERS) ? POLLOUT | POLLWRNORM : 0;
+ /*
+ * Most Unices do not set POLLERR for FIFOs but on Linux they
+ * behave exactly like pipes for poll().
+ */
if (!PIPE_READERS(*inode))
mask |= POLLERR;
}
@@ -426,9 +430,6 @@ pipe_poll(struct file *filp, poll_table
return mask;
}

-/* FIXME: most Unices do not set POLLERR for fifos */
-#define fifo_poll pipe_poll
-
static int
pipe_release(struct inode *inode, int decr, int decw)
{
@@ -572,7 +573,7 @@ struct file_operations read_fifo_fops =
.read = pipe_read,
.readv = pipe_readv,
.write = bad_pipe_w,
- .poll = fifo_poll,
+ .poll = pipe_poll,
.ioctl = pipe_ioctl,
.open = pipe_read_open,
.release = pipe_read_release,
@@ -584,7 +585,7 @@ struct file_operations write_fifo_fops =
.read = bad_pipe_r,
.write = pipe_write,
.writev = pipe_writev,
- .poll = fifo_poll,
+ .poll = pipe_poll,
.ioctl = pipe_ioctl,
.open = pipe_write_open,
.release = pipe_write_release,
@@ -597,7 +598,7 @@ struct file_operations rdwr_fifo_fops =
.readv = pipe_readv,
.write = pipe_write,
.writev = pipe_writev,
- .poll = fifo_poll,
+ .poll = pipe_poll,
.ioctl = pipe_ioctl,
.open = pipe_rdwr_open,
.release = pipe_rdwr_release,


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/