diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index b1892cdd25c637eafa3e09255d77a3435293e363..4678d9ec810be7496054d7272a4b50c120e714d4 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -1266,7 +1266,7 @@ void tctx_task_work(struct callback_head *cb)
 
 	node = llist_del_all(&tctx->task_list);
 	if (node)
-		count = handle_tw_list(node, &ctx, &ts);
+		count = handle_tw_list(llist_reverse_order(node), &ctx, &ts);
 
 	ctx_flush_and_put(ctx, &ts);