eventfd: switch to ->poll_mask
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Родитель
dd67081b36
Коммит
9e42f195f5
15
fs/eventfd.c
15
fs/eventfd.c
|
@ -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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче