mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
io_uring/cmd: remove struct io_uring_cmd_data
There are no more users of struct io_uring_cmd_data and its op_data field. Remove it to shave 8 bytes from struct io_async_cmd and eliminate a store and load for every uring_cmd. Signed-off-by: Caleb Sander Mateos <csander@purestorage.com> Acked-by: David Sterba <dsterba@suse.com> Link: https://lore.kernel.org/r/20250708202212.2851548-5-csander@purestorage.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
9aad72b4e3
commit
2e6dbb25ea
3 changed files with 1 additions and 21 deletions
|
@ -21,10 +21,6 @@ struct io_uring_cmd {
|
|||
u8 pdu[32]; /* available inline for free use */
|
||||
};
|
||||
|
||||
struct io_uring_cmd_data {
|
||||
void *op_data;
|
||||
};
|
||||
|
||||
static inline const void *io_uring_sqe_cmd(const struct io_uring_sqe *sqe)
|
||||
{
|
||||
return sqe->cmd;
|
||||
|
@ -137,11 +133,6 @@ static inline struct task_struct *io_uring_cmd_get_task(struct io_uring_cmd *cmd
|
|||
return cmd_to_io_kiocb(cmd)->tctx->task;
|
||||
}
|
||||
|
||||
static inline struct io_uring_cmd_data *io_uring_cmd_get_async_data(struct io_uring_cmd *cmd)
|
||||
{
|
||||
return cmd_to_io_kiocb(cmd)->async_data;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return uring_cmd's context reference as its context handle for driver to
|
||||
* track per-context resource, such as registered kernel IO buffer
|
||||
|
|
|
@ -26,12 +26,6 @@ static void io_req_uring_cleanup(struct io_kiocb *req, unsigned int issue_flags)
|
|||
{
|
||||
struct io_uring_cmd *ioucmd = io_kiocb_to_cmd(req, struct io_uring_cmd);
|
||||
struct io_async_cmd *ac = req->async_data;
|
||||
struct io_uring_cmd_data *cache = &ac->data;
|
||||
|
||||
if (cache->op_data) {
|
||||
kfree(cache->op_data);
|
||||
cache->op_data = NULL;
|
||||
}
|
||||
|
||||
if (issue_flags & IO_URING_F_UNLOCKED)
|
||||
return;
|
||||
|
@ -40,7 +34,7 @@ static void io_req_uring_cleanup(struct io_kiocb *req, unsigned int issue_flags)
|
|||
if (ac->vec.nr > IO_VEC_CACHE_SOFT_CAP)
|
||||
io_vec_free(&ac->vec);
|
||||
|
||||
if (io_alloc_cache_put(&req->ctx->cmd_cache, cache)) {
|
||||
if (io_alloc_cache_put(&req->ctx->cmd_cache, ac)) {
|
||||
ioucmd->sqe = NULL;
|
||||
req->async_data = NULL;
|
||||
req->flags &= ~(REQ_F_ASYNC_DATA|REQ_F_NEED_CLEANUP);
|
||||
|
@ -193,9 +187,6 @@ int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
|
|||
struct io_uring_cmd *ioucmd = io_kiocb_to_cmd(req, struct io_uring_cmd);
|
||||
struct io_async_cmd *ac;
|
||||
|
||||
/* see io_uring_cmd_get_async_data() */
|
||||
BUILD_BUG_ON(offsetof(struct io_async_cmd, data) != 0);
|
||||
|
||||
if (sqe->__pad1)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -211,7 +202,6 @@ int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
|
|||
ac = io_uring_alloc_async_data(&req->ctx->cmd_cache, req);
|
||||
if (!ac)
|
||||
return -ENOMEM;
|
||||
ac->data.op_data = NULL;
|
||||
ioucmd->sqe = sqe;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
#include <linux/io_uring_types.h>
|
||||
|
||||
struct io_async_cmd {
|
||||
struct io_uring_cmd_data data;
|
||||
struct iou_vec vec;
|
||||
struct io_uring_sqe sqes[2];
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue