diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2025-05-06 13:31:16 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-05-06 10:11:23 -0600 |
commit | 35adea1d018ab1e450ea2304e58dc2f987a639d3 (patch) | |
tree | 35ebfb3db8acbdfde5577095382f3045b651096f | |
parent | 9c2ff3f9b5e0202d1cc1f6193b1e96df203ae4a4 (diff) |
io_uring: move io_req_put_rsrc_nodes()
It'd be nice to hide details of how rsrc nodes are used by a request
from rsrc.c, specifically which request fields store them, and what bits
are signifying if there is a node in a request. It rather belong to
generic request handling, so move the helper to io_uring.c. While doing
so remove clearing of ->buf_node as it's controlled by REQ_F_BUF_NODE
and doesn't require zeroing.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/bb73fb42baf825edb39344365aff48cdfdd4c692.1746533789.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r-- | io_uring/io_uring.c | 10 | ||||
-rw-r--r-- | io_uring/rsrc.h | 12 |
2 files changed, 10 insertions, 12 deletions
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index 3d20f3b63443..0d051476008c 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -1369,6 +1369,16 @@ void io_queue_next(struct io_kiocb *req) io_req_task_queue(nxt); } +static inline void io_req_put_rsrc_nodes(struct io_kiocb *req) +{ + if (req->file_node) { + io_put_rsrc_node(req->ctx, req->file_node); + req->file_node = NULL; + } + if (req->flags & REQ_F_BUF_NODE) + io_put_rsrc_node(req->ctx, req->buf_node); +} + static void io_free_batch_list(struct io_ring_ctx *ctx, struct io_wq_work_node *node) __must_hold(&ctx->uring_lock) diff --git a/io_uring/rsrc.h b/io_uring/rsrc.h index 2818aa0d0472..0d2138f16322 100644 --- a/io_uring/rsrc.h +++ b/io_uring/rsrc.h @@ -115,18 +115,6 @@ static inline bool io_reset_rsrc_node(struct io_ring_ctx *ctx, return true; } -static inline void io_req_put_rsrc_nodes(struct io_kiocb *req) -{ - if (req->file_node) { - io_put_rsrc_node(req->ctx, req->file_node); - req->file_node = NULL; - } - if (req->flags & REQ_F_BUF_NODE) { - io_put_rsrc_node(req->ctx, req->buf_node); - req->buf_node = NULL; - } -} - int io_files_update(struct io_kiocb *req, unsigned int issue_flags); int io_files_update_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe); |