eventfd: switch to ->poll_mask

Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Christoph Hellwig 2017-12-31 16:42:48 +01:00
parent dd67081b36
commit 9e42f195f5

View File

@ -101,14 +101,20 @@ static int eventfd_release(struct inode *inode, struct file *file)
return 0; return 0;
} }
static __poll_t eventfd_poll(struct file *file, poll_table *wait) static struct wait_queue_head *
eventfd_get_poll_head(struct file *file, __poll_t events)
{
struct eventfd_ctx *ctx = file->private_data;
return &ctx->wqh;
}
static __poll_t eventfd_poll_mask(struct file *file, __poll_t eventmask)
{ {
struct eventfd_ctx *ctx = file->private_data; struct eventfd_ctx *ctx = file->private_data;
__poll_t events = 0; __poll_t events = 0;
u64 count; u64 count;
poll_wait(file, &ctx->wqh, wait);
/* /*
* All writes to ctx->count occur within ctx->wqh.lock. This read * All writes to ctx->count occur within ctx->wqh.lock. This read
* can be done outside ctx->wqh.lock because we know that poll_wait * can be done outside ctx->wqh.lock because we know that poll_wait
@ -305,7 +311,8 @@ static const struct file_operations eventfd_fops = {
.show_fdinfo = eventfd_show_fdinfo, .show_fdinfo = eventfd_show_fdinfo,
#endif #endif
.release = eventfd_release, .release = eventfd_release,
.poll = eventfd_poll, .get_poll_head = eventfd_get_poll_head,
.poll_mask = eventfd_poll_mask,
.read = eventfd_read, .read = eventfd_read,
.write = eventfd_write, .write = eventfd_write,
.llseek = noop_llseek, .llseek = noop_llseek,