Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] pipe: remove redundant fifo_poll abstraction

Remove 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@cs.helsinki.fi>
Cc: Manfred Spraul <manfred@colorfullife.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Pekka Enberg and committed by
Linus Torvalds
5e5d7a22 9c45817f

+7 -6
+7 -6
fs/pipe.c
··· 415 415 416 416 if (filp->f_mode & FMODE_WRITE) { 417 417 mask |= (nrbufs < PIPE_BUFFERS) ? POLLOUT | POLLWRNORM : 0; 418 + /* 419 + * Most Unices do not set POLLERR for FIFOs but on Linux they 420 + * behave exactly like pipes for poll(). 421 + */ 418 422 if (!PIPE_READERS(*inode)) 419 423 mask |= POLLERR; 420 424 } 421 425 422 426 return mask; 423 427 } 424 - 425 - /* FIXME: most Unices do not set POLLERR for fifos */ 426 - #define fifo_poll pipe_poll 427 428 428 429 static int 429 430 pipe_release(struct inode *inode, int decr, int decw) ··· 569 568 .read = pipe_read, 570 569 .readv = pipe_readv, 571 570 .write = bad_pipe_w, 572 - .poll = fifo_poll, 571 + .poll = pipe_poll, 573 572 .ioctl = pipe_ioctl, 574 573 .open = pipe_read_open, 575 574 .release = pipe_read_release, ··· 581 580 .read = bad_pipe_r, 582 581 .write = pipe_write, 583 582 .writev = pipe_writev, 584 - .poll = fifo_poll, 583 + .poll = pipe_poll, 585 584 .ioctl = pipe_ioctl, 586 585 .open = pipe_write_open, 587 586 .release = pipe_write_release, ··· 594 593 .readv = pipe_readv, 595 594 .write = pipe_write, 596 595 .writev = pipe_writev, 597 - .poll = fifo_poll, 596 + .poll = pipe_poll, 598 597 .ioctl = pipe_ioctl, 599 598 .open = pipe_rdwr_open, 600 599 .release = pipe_rdwr_release,