Pull io_uring fix from Jens Axboe: "Just a single fix for an issue with un-reaped IOPOLL requests on ring exit" * tag 'io_uring-6.0-2022-09-23' of git://git.kernel.dk/linux: io_uring: ensure that cached task references are always put on exit
Unified · Split
| @@ -2648,6 +2648,9 @@ static __cold void io_ring_ctx_wait_and_kill(struct io_ring_ctx *ctx) · 2647 unmodified lines | |||
| 2648 | io_kill_timeouts(ctx, NULL, true); | 2648 | io_kill_timeouts(ctx, NULL, true); |
| 2649 | /* if we failed setting up the ctx, we might not have any rings */ | 2649 | /* if we failed setting up the ctx, we might not have any rings */ |
| 2650 | io_iopoll_try_reap_events(ctx); | 2650 | io_iopoll_try_reap_events(ctx); |
| 2651 | /* drop cached put refs after potentially doing completions */ | ||
| 2652 | if (current->io_uring) | ||
| 2653 | io_uring_drop_tctx_refs(current); | ||
| 2651 | } | 2654 | } |
| 2652 | 2655 | ||
| 2653 | INIT_WORK(&ctx->exit_work, io_ring_exit_work); | 2656 | INIT_WORK(&ctx->exit_work, io_ring_exit_work); |