Message ID | 20180522113108.25713-31-hch@lst.de |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
Series | [01/31] fs: unexport poll_schedule_timeout | expand |
Hello! On 05/22/2018 02:31 PM, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > fs/timerfd.c | 22 +++++++++++----------- > 1 file changed, 11 insertions(+), 11 deletions(-) > > diff --git a/fs/timerfd.c b/fs/timerfd.c > index cdad49da3ff7..d84a2bee4f82 100644 > --- a/fs/timerfd.c > +++ b/fs/timerfd.c > @@ -226,21 +226,20 @@ static int timerfd_release(struct inode *inode, struct file *file) > kfree_rcu(ctx, rcu); > return 0; > } > - > -static __poll_t timerfd_poll(struct file *file, poll_table *wait) > + Stray tab detected! :-) > +static struct wait_queue_head *timerfd_get_poll_head(struct file *file, > + __poll_t eventmask) > { > struct timerfd_ctx *ctx = file->private_data; > - __poll_t events = 0; > - unsigned long flags; > > - poll_wait(file, &ctx->wqh, wait); > + return &ctx->wqh; > +} > > - spin_lock_irqsave(&ctx->wqh.lock, flags); > - if (ctx->ticks) > - events |= EPOLLIN; > - spin_unlock_irqrestore(&ctx->wqh.lock, flags); > +static __poll_t timerfd_poll_mask(struct file *file, __poll_t eventmask) > +{ > + struct timerfd_ctx *ctx = file->private_data; > > - return events; > + return ctx->ticks ? EPOLLIN : 0; > } > > static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, [...] MBR, Sergei
diff --git a/fs/timerfd.c b/fs/timerfd.c index cdad49da3ff7..d84a2bee4f82 100644 --- a/fs/timerfd.c +++ b/fs/timerfd.c @@ -226,21 +226,20 @@ static int timerfd_release(struct inode *inode, struct file *file) kfree_rcu(ctx, rcu); return 0; } - -static __poll_t timerfd_poll(struct file *file, poll_table *wait) + +static struct wait_queue_head *timerfd_get_poll_head(struct file *file, + __poll_t eventmask) { struct timerfd_ctx *ctx = file->private_data; - __poll_t events = 0; - unsigned long flags; - poll_wait(file, &ctx->wqh, wait); + return &ctx->wqh; +} - spin_lock_irqsave(&ctx->wqh.lock, flags); - if (ctx->ticks) - events |= EPOLLIN; - spin_unlock_irqrestore(&ctx->wqh.lock, flags); +static __poll_t timerfd_poll_mask(struct file *file, __poll_t eventmask) +{ + struct timerfd_ctx *ctx = file->private_data; - return events; + return ctx->ticks ? EPOLLIN : 0; } static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, @@ -364,7 +363,8 @@ static long timerfd_ioctl(struct file *file, unsigned int cmd, unsigned long arg static const struct file_operations timerfd_fops = { .release = timerfd_release, - .poll = timerfd_poll, + .get_poll_head = timerfd_get_poll_head, + .poll_mask = timerfd_poll_mask, .read = timerfd_read, .llseek = noop_llseek, .show_fdinfo = timerfd_show,
Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/timerfd.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-)