eventfd: switch to ->poll_mask
authorChristoph Hellwig <hch@lst.de>
Sun, 31 Dec 2017 15:42:48 +0000 (16:42 +0100)
committerChristoph Hellwig <hch@lst.de>
Sat, 26 May 2018 07:16:44 +0000 (09:16 +0200)
Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/eventfd.c

index 08d3bd602f73d8f219ee1f259c0cbaa839245c56..61c9514da5e956a36a90e9df601eccfc01b9595a 100644 (file)
@@ -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,