diff options
author | Caleb Sander Mateos <csander@purestorage.com> | 2025-03-04 12:48:12 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-03-05 07:38:55 -0700 |
commit | 0d83b8a9f180436a84fbdeb575696b0c3ae0ac0c (patch) | |
tree | 63f4ee653c55050eea934f788e228f0607086dbe /io_uring/io_uring.c | |
parent | fe21a4532ef2a6852c89b352cb8ded0d37b4745c (diff) |
io_uring: introduce io_cache_free() helper
Add a helper function io_cache_free() that returns an allocation to a
io_alloc_cache, falling back on kfree() if the io_alloc_cache is full.
This is the inverse of io_cache_alloc(), which takes an allocation from
an io_alloc_cache and falls back on kmalloc() if the cache is empty.
Convert 4 callers to use the helper.
Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Suggested-by: Li Zetao <lizetao1@huawei.com>
Link: https://lore.kernel.org/r/20250304194814.2346705-1-csander@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/io_uring.c')
-rw-r--r-- | io_uring/io_uring.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index ccc343f61a57..58003fa6b327 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1422,8 +1422,7 @@ static void io_free_batch_list(struct io_ring_ctx *ctx, if (apoll->double_poll) kfree(apoll->double_poll); - if (!io_alloc_cache_put(&ctx->apoll_cache, apoll)) - kfree(apoll); + io_cache_free(&ctx->apoll_cache, apoll); req->flags &= ~REQ_F_POLLED; } if (req->flags & IO_REQ_LINK_FLAGS) |