Loading io_uring/io_uring.c +0 −12 Original line number Diff line number Diff line Loading @@ -2445,18 +2445,6 @@ static void io_req_caches_free(struct io_ring_ctx *ctx) mutex_unlock(&ctx->uring_lock); } static void io_flush_apoll_cache(struct io_ring_ctx *ctx) { struct async_poll *apoll; while (!list_empty(&ctx->apoll_cache)) { apoll = list_first_entry(&ctx->apoll_cache, struct async_poll, poll.wait.entry); list_del(&apoll->poll.wait.entry); kfree(apoll); } } static __cold void io_ring_ctx_free(struct io_ring_ctx *ctx) { io_sq_thread_finish(ctx); Loading io_uring/poll.c +12 −0 Original line number Diff line number Diff line Loading @@ -959,3 +959,15 @@ int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags) io_req_set_res(req, ret, 0); return IOU_OK; } void io_flush_apoll_cache(struct io_ring_ctx *ctx) { struct async_poll *apoll; while (!list_empty(&ctx->apoll_cache)) { apoll = list_first_entry(&ctx->apoll_cache, struct async_poll, poll.wait.entry); list_del(&apoll->poll.wait.entry); kfree(apoll); } } io_uring/poll.h +2 −0 Original line number Diff line number Diff line Loading @@ -30,3 +30,5 @@ int io_poll_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd, int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags); bool io_poll_remove_all(struct io_ring_ctx *ctx, struct task_struct *tsk, bool cancel_all); void io_flush_apoll_cache(struct io_ring_ctx *ctx); Loading
io_uring/io_uring.c +0 −12 Original line number Diff line number Diff line Loading @@ -2445,18 +2445,6 @@ static void io_req_caches_free(struct io_ring_ctx *ctx) mutex_unlock(&ctx->uring_lock); } static void io_flush_apoll_cache(struct io_ring_ctx *ctx) { struct async_poll *apoll; while (!list_empty(&ctx->apoll_cache)) { apoll = list_first_entry(&ctx->apoll_cache, struct async_poll, poll.wait.entry); list_del(&apoll->poll.wait.entry); kfree(apoll); } } static __cold void io_ring_ctx_free(struct io_ring_ctx *ctx) { io_sq_thread_finish(ctx); Loading
io_uring/poll.c +12 −0 Original line number Diff line number Diff line Loading @@ -959,3 +959,15 @@ int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags) io_req_set_res(req, ret, 0); return IOU_OK; } void io_flush_apoll_cache(struct io_ring_ctx *ctx) { struct async_poll *apoll; while (!list_empty(&ctx->apoll_cache)) { apoll = list_first_entry(&ctx->apoll_cache, struct async_poll, poll.wait.entry); list_del(&apoll->poll.wait.entry); kfree(apoll); } }
io_uring/poll.h +2 −0 Original line number Diff line number Diff line Loading @@ -30,3 +30,5 @@ int io_poll_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd, int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags); bool io_poll_remove_all(struct io_ring_ctx *ctx, struct task_struct *tsk, bool cancel_all); void io_flush_apoll_cache(struct io_ring_ctx *ctx);