lkml.org 
[lkml]   [2018]   [Mar]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 33/36] pipe: convert to ->poll_mask
    Date
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    ---
    fs/pipe.c | 22 +++++++++++++---------
    1 file changed, 13 insertions(+), 9 deletions(-)

    diff --git a/fs/pipe.c b/fs/pipe.c
    index 7b1954caf388..81937590ea0a 100644
    --- a/fs/pipe.c
    +++ b/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)
    @@ -1015,7 +1018,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,
    --
    2.14.2
    \
     
     \ /
      Last update: 2018-03-05 22:29    [W:2.445 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site