]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
io_uring/eventfd: check for the need to async notifier earlier
authorJens Axboe <axboe@kernel.dk>
Sat, 21 Sep 2024 07:59:48 +0000 (01:59 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 29 Oct 2024 19:43:26 +0000 (13:43 -0600)
It's not necessary to do this post grabbing a reference. With that, we
can drop the out goto path as well.

Link: https://lore.kernel.org/r/20240921080307.185186-3-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/eventfd.c

index 8b628ab6bbffeb8796eeeaac3a02ef7c228f2cf0..829873806f9f0f17cd498b9710de7002d95a69f3 100644 (file)
@@ -69,10 +69,10 @@ void io_eventfd_signal(struct io_ring_ctx *ctx)
         */
        if (unlikely(!ev_fd))
                return;
+       if (ev_fd->eventfd_async && !io_wq_current_is_worker())
+               return;
        if (!refcount_inc_not_zero(&ev_fd->refs))
                return;
-       if (ev_fd->eventfd_async && !io_wq_current_is_worker())
-               goto out;
 
        if (likely(eventfd_signal_allowed())) {
                eventfd_signal_mask(ev_fd->cq_ev_fd, EPOLL_URING_WAKE);
@@ -82,7 +82,6 @@ void io_eventfd_signal(struct io_ring_ctx *ctx)
                        return;
                }
        }
-out:
        io_eventfd_put(ev_fd);
 }