forked from luck/tmp_suning_uos_patched
pipe: convert to ->poll_mask
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
b28fc82267
commit
dd67081b36
22
fs/pipe.c
22
fs/pipe.c
|
@ -509,19 +509,22 @@ static long pipe_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
|||
}
|
||||
}
|
||||
|
||||
/* No kernel lock held - fine */
|
||||
static __poll_t
|
||||
pipe_poll(struct file *filp, poll_table *wait)
|
||||
static struct wait_queue_head *
|
||||
pipe_get_poll_head(struct file *filp, __poll_t events)
|
||||
{
|
||||
__poll_t mask;
|
||||
struct pipe_inode_info *pipe = filp->private_data;
|
||||
int nrbufs;
|
||||
|
||||
poll_wait(filp, &pipe->wait, wait);
|
||||
return &pipe->wait;
|
||||
}
|
||||
|
||||
/* No kernel lock held - fine */
|
||||
static __poll_t pipe_poll_mask(struct file *filp, __poll_t events)
|
||||
{
|
||||
struct pipe_inode_info *pipe = filp->private_data;
|
||||
int nrbufs = pipe->nrbufs;
|
||||
__poll_t mask = 0;
|
||||
|
||||
/* Reading only -- no need for acquiring the semaphore. */
|
||||
nrbufs = pipe->nrbufs;
|
||||
mask = 0;
|
||||
if (filp->f_mode & FMODE_READ) {
|
||||
mask = (nrbufs > 0) ? EPOLLIN | EPOLLRDNORM : 0;
|
||||
if (!pipe->writers && filp->f_version != pipe->w_counter)
|
||||
|
@ -1020,7 +1023,8 @@ const struct file_operations pipefifo_fops = {
|
|||
.llseek = no_llseek,
|
||||
.read_iter = pipe_read,
|
||||
.write_iter = pipe_write,
|
||||
.poll = pipe_poll,
|
||||
.get_poll_head = pipe_get_poll_head,
|
||||
.poll_mask = pipe_poll_mask,
|
||||
.unlocked_ioctl = pipe_ioctl,
|
||||
.release = pipe_release,
|
||||
.fasync = pipe_fasync,
|
||||
|
|
Loading…
Reference in New Issue
Block a user