io_uring: make __tctx_task_work_run() take an io_wq_work_list io_uring-defer-tw.3
authorJens Axboe <axboe@kernel.dk>
Fri, 22 Nov 2024 16:08:06 +0000 (09:08 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 17 Jun 2025 11:49:33 +0000 (05:49 -0600)
commitbbc42e47c323defdb248d9802a92852cca44d353
tree41d481d9b91d572dd46227ad89ae8322ecfbf0ba
parentb64e266d187af4d7a1cfab6b720eea9becf8a743
io_uring: make __tctx_task_work_run() take an io_wq_work_list

The normal task_work logic doesn't really need it, as it always runs
all of the pending work. But for SQPOLL, it can now pass in its
retry_list which simplifies the tracking of split up task_work running.

This avoids passing io_wq_work_node around. Rather than pass in a list,
SQPOLL could re-add the leftover items to the generic task_work list.
But that requires re-locking the task_lock and using task_list for that,
whereas having a separate retry list allows for skipping those steps.
The downside is that now two lists need checking, but that's now it
was before as well.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io_uring.c
io_uring/io_uring.h
io_uring/sqpoll.c