io_uring/notif: refactor io_tx_ubuf_complete()
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 15 Apr 2024 12:50:11 +0000 (13:50 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 15 Apr 2024 14:10:49 +0000 (08:10 -0600)
Flip the dec_and_test "if", that makes the function extension easier in
the future.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/43939e2b04dff03bff5d7227c98afedf951227b3.1713185320.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/notif.c

index b561bd763435c91d996b1aedc69b189e7e67a921..452c255de04a96aec1eade94afce8f5cbaea716f 100644 (file)
@@ -37,10 +37,11 @@ static void io_tx_ubuf_callback(struct sk_buff *skb, struct ubuf_info *uarg,
                        WRITE_ONCE(nd->zc_copied, true);
        }
 
-       if (refcount_dec_and_test(&uarg->refcnt)) {
-               notif->io_task_work.func = io_notif_tw_complete;
-               __io_req_task_work_add(notif, IOU_F_TWQ_LAZY_WAKE);
-       }
+       if (!refcount_dec_and_test(&uarg->refcnt))
+               return;
+
+       notif->io_task_work.func = io_notif_tw_complete;
+       __io_req_task_work_add(notif, IOU_F_TWQ_LAZY_WAKE);
 }
 
 struct io_kiocb *io_alloc_notif(struct io_ring_ctx *ctx)