lkml.org 
[lkml]   [2018]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 21/32] 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 a449ca0ec0c6..33a32d13b83d 100644
    --- a/fs/pipe.c
    +++ b/fs/pipe.c
    @@ -514,19 +514,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) ? POLLIN | POLLRDNORM : 0;
    if (!pipe->writers && filp->f_version != pipe->w_counter)
    @@ -1010,7 +1013,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-01-14 23:21    [W:5.384 / U:0.624 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site