Loading fs/timerfd.c +11 −11 Original line number Diff line number Diff line Loading @@ -227,20 +227,19 @@ static int timerfd_release(struct inode *inode, struct file *file) 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; __poll_t events = 0; unsigned long flags; poll_wait(file, &ctx->wqh, wait); return &ctx->wqh; } spin_lock_irqsave(&ctx->wqh.lock, flags); if (ctx->ticks) events |= EPOLLIN; spin_unlock_irqrestore(&ctx->wqh.lock, flags); static __poll_t timerfd_poll_mask(struct file *file, __poll_t eventmask) { struct timerfd_ctx *ctx = file->private_data; return events; return ctx->ticks ? EPOLLIN : 0; } static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, Loading Loading @@ -364,7 +363,8 @@ static long timerfd_ioctl(struct file *file, unsigned int cmd, unsigned long arg static const struct file_operations timerfd_fops = { .release = timerfd_release, .poll = timerfd_poll, .get_poll_head = timerfd_get_poll_head, .poll_mask = timerfd_poll_mask, .read = timerfd_read, .llseek = noop_llseek, .show_fdinfo = timerfd_show, Loading Loading
fs/timerfd.c +11 −11 Original line number Diff line number Diff line Loading @@ -227,20 +227,19 @@ static int timerfd_release(struct inode *inode, struct file *file) 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; __poll_t events = 0; unsigned long flags; poll_wait(file, &ctx->wqh, wait); return &ctx->wqh; } spin_lock_irqsave(&ctx->wqh.lock, flags); if (ctx->ticks) events |= EPOLLIN; spin_unlock_irqrestore(&ctx->wqh.lock, flags); static __poll_t timerfd_poll_mask(struct file *file, __poll_t eventmask) { struct timerfd_ctx *ctx = file->private_data; return events; return ctx->ticks ? EPOLLIN : 0; } static ssize_t timerfd_read(struct file *file, char __user *buf, size_t count, Loading Loading @@ -364,7 +363,8 @@ static long timerfd_ioctl(struct file *file, unsigned int cmd, unsigned long arg static const struct file_operations timerfd_fops = { .release = timerfd_release, .poll = timerfd_poll, .get_poll_head = timerfd_get_poll_head, .poll_mask = timerfd_poll_mask, .read = timerfd_read, .llseek = noop_llseek, .show_fdinfo = timerfd_show, Loading