Lines Matching refs:ev_fd

494 	struct io_ev_fd *ev_fd = container_of(rcu, struct io_ev_fd, rcu);  in io_eventfd_ops()  local
495 int ops = atomic_xchg(&ev_fd->ops, 0); in io_eventfd_ops()
498 eventfd_signal(ev_fd->cq_ev_fd, 1); in io_eventfd_ops()
504 if (atomic_dec_and_test(&ev_fd->refs)) { in io_eventfd_ops()
505 eventfd_ctx_put(ev_fd->cq_ev_fd); in io_eventfd_ops()
506 kfree(ev_fd); in io_eventfd_ops()
512 struct io_ev_fd *ev_fd = NULL; in io_eventfd_signal() local
519 ev_fd = rcu_dereference(ctx->io_ev_fd); in io_eventfd_signal()
526 if (unlikely(!ev_fd)) in io_eventfd_signal()
530 if (ev_fd->eventfd_async && !io_wq_current_is_worker()) in io_eventfd_signal()
534 eventfd_signal(ev_fd->cq_ev_fd, 1); in io_eventfd_signal()
536 atomic_inc(&ev_fd->refs); in io_eventfd_signal()
537 if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_SIGNAL_BIT), &ev_fd->ops)) in io_eventfd_signal()
538 call_rcu(&ev_fd->rcu, io_eventfd_ops); in io_eventfd_signal()
540 atomic_dec(&ev_fd->refs); in io_eventfd_signal()
2514 struct io_ev_fd *ev_fd; in io_eventfd_register() local
2518 ev_fd = rcu_dereference_protected(ctx->io_ev_fd, in io_eventfd_register()
2520 if (ev_fd) in io_eventfd_register()
2526 ev_fd = kmalloc(sizeof(*ev_fd), GFP_KERNEL); in io_eventfd_register()
2527 if (!ev_fd) in io_eventfd_register()
2530 ev_fd->cq_ev_fd = eventfd_ctx_fdget(fd); in io_eventfd_register()
2531 if (IS_ERR(ev_fd->cq_ev_fd)) { in io_eventfd_register()
2532 int ret = PTR_ERR(ev_fd->cq_ev_fd); in io_eventfd_register()
2533 kfree(ev_fd); in io_eventfd_register()
2541 ev_fd->eventfd_async = eventfd_async; in io_eventfd_register()
2543 rcu_assign_pointer(ctx->io_ev_fd, ev_fd); in io_eventfd_register()
2544 atomic_set(&ev_fd->refs, 1); in io_eventfd_register()
2545 atomic_set(&ev_fd->ops, 0); in io_eventfd_register()
2551 struct io_ev_fd *ev_fd; in io_eventfd_unregister() local
2553 ev_fd = rcu_dereference_protected(ctx->io_ev_fd, in io_eventfd_unregister()
2555 if (ev_fd) { in io_eventfd_unregister()
2558 if (!atomic_fetch_or(BIT(IO_EVENTFD_OP_FREE_BIT), &ev_fd->ops)) in io_eventfd_unregister()
2559 call_rcu(&ev_fd->rcu, io_eventfd_ops); in io_eventfd_unregister()