Commit 652fe8e8 authored by Christoph Hellwig's avatar Christoph Hellwig

timerfd: convert to ->poll_mask

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 9e42f195
...@@ -226,21 +226,20 @@ static int timerfd_release(struct inode *inode, struct file *file) ...@@ -226,21 +226,20 @@ static int timerfd_release(struct inode *inode, struct file *file)
kfree_rcu(ctx, rcu); kfree_rcu(ctx, rcu);
return 0; 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; 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); static __poll_t timerfd_poll_mask(struct file *file, __poll_t eventmask)
if (ctx->ticks) {
events |= EPOLLIN; struct timerfd_ctx *ctx = file->private_data;
spin_unlock_irqrestore(&ctx->wqh.lock, flags);
return events; return ctx->ticks ? EPOLLIN : 0;
} }
static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, 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 ...@@ -364,7 +363,8 @@ static long timerfd_ioctl(struct file *file, unsigned int cmd, unsigned long arg
static const struct file_operations timerfd_fops = { static const struct file_operations timerfd_fops = {
.release = timerfd_release, .release = timerfd_release,
.poll = timerfd_poll, .get_poll_head = timerfd_get_poll_head,
.poll_mask = timerfd_poll_mask,
.read = timerfd_read, .read = timerfd_read,
.llseek = noop_llseek, .llseek = noop_llseek,
.show_fdinfo = timerfd_show, .show_fdinfo = timerfd_show,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment