io_uring: run local task_work from ring exit IOPOLL reaping

In preparation for needing to shift NVMe passthrough to always use
task_work for polled IO completions, ensure that those are suitably
run at exit time. See commit:

9ce6c9875f ("nvme: always punt polled uring_cmd end_io work to task_work")

for details on why that is necessary.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
pull/1265/head
Jens Axboe 2025-06-13 15:24:53 -06:00
parent 26ec15e4b0
commit b62e0efd8a
1 changed files with 3 additions and 0 deletions

View File

@ -1523,6 +1523,9 @@ static __cold void io_iopoll_try_reap_events(struct io_ring_ctx *ctx)
} }
} }
mutex_unlock(&ctx->uring_lock); mutex_unlock(&ctx->uring_lock);
if (ctx->flags & IORING_SETUP_DEFER_TASKRUN)
io_move_task_work_from_local(ctx);
} }
static int io_iopoll_check(struct io_ring_ctx *ctx, unsigned int min_events) static int io_iopoll_check(struct io_ring_ctx *ctx, unsigned int min_events)