Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9e42f195 authored by Christoph Hellwig's avatar Christoph Hellwig
Browse files

eventfd: switch to ->poll_mask



Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent dd67081b
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -101,14 +101,20 @@ static int eventfd_release(struct inode *inode, struct file *file)
	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;
	__poll_t events = 0;
	u64 count;

	poll_wait(file, &ctx->wqh, wait);

	/*
	 * 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
@@ -305,7 +311,8 @@ static const struct file_operations eventfd_fops = {
	.show_fdinfo	= eventfd_show_fdinfo,
#endif
	.release	= eventfd_release,
	.poll		= eventfd_poll,
	.get_poll_head	= eventfd_get_poll_head,
	.poll_mask	= eventfd_poll_mask,
	.read		= eventfd_read,
	.write		= eventfd_write,
	.llseek		= noop_llseek,