Commit dadf03cf authored by Jens Axboe's avatar Jens Axboe Committed by David Sterba
Browse files

io_uring/cmd: rename struct uring_cache to io_uring_cmd_data



In preparation for making this more generically available for
->uring_cmd() usage that needs stable command data, rename it and move
it to io_uring/cmd.h instead.

Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent fca432e7
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -18,6 +18,10 @@ struct io_uring_cmd {
	u8		pdu[32]; /* available inline for free use */
};

struct io_uring_cmd_data {
	struct io_uring_sqe	sqes[2];
};

static inline const void *io_uring_sqe_cmd(const struct io_uring_sqe *sqe)
{
	return sqe->cmd;
+1 −1
Original line number Diff line number Diff line
@@ -315,7 +315,7 @@ static __cold struct io_ring_ctx *io_ring_ctx_alloc(struct io_uring_params *p)
	ret |= io_alloc_cache_init(&ctx->rw_cache, IO_ALLOC_CACHE_MAX,
			    sizeof(struct io_async_rw));
	ret |= io_alloc_cache_init(&ctx->uring_cache, IO_ALLOC_CACHE_MAX,
			    sizeof(struct uring_cache));
			    sizeof(struct io_uring_cmd_data));
	spin_lock_init(&ctx->msg_lock);
	ret |= io_alloc_cache_init(&ctx->msg_cache, IO_ALLOC_CACHE_MAX,
			    sizeof(struct io_kiocb));
+2 −1
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@
#include <linux/fs.h>
#include <linux/file.h>
#include <linux/io_uring.h>
#include <linux/io_uring/cmd.h>

#include "io_uring.h"
#include "opdef.h"
@@ -414,7 +415,7 @@ const struct io_issue_def io_issue_defs[] = {
		.plug			= 1,
		.iopoll			= 1,
		.iopoll_queue		= 1,
		.async_size		= 2 * sizeof(struct io_uring_sqe),
		.async_size		= sizeof(struct io_uring_cmd_data),
		.prep			= io_uring_cmd_prep,
		.issue			= io_uring_cmd,
	},
+5 −5
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@
#include "rsrc.h"
#include "uring_cmd.h"

static struct uring_cache *io_uring_async_get(struct io_kiocb *req)
static struct io_uring_cmd_data *io_uring_async_get(struct io_kiocb *req)
{
	struct io_ring_ctx *ctx = req->ctx;
	struct uring_cache *cache;
	struct io_uring_cmd_data *cache;

	cache = io_alloc_cache_get(&ctx->uring_cache);
	if (cache) {
@@ -35,7 +35,7 @@ static struct uring_cache *io_uring_async_get(struct io_kiocb *req)
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 uring_cache *cache = req->async_data;
	struct io_uring_cmd_data *cache = req->async_data;

	if (issue_flags & IO_URING_F_UNLOCKED)
		return;
@@ -183,7 +183,7 @@ static int io_uring_cmd_prep_setup(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 uring_cache *cache;
	struct io_uring_cmd_data *cache;

	cache = io_uring_async_get(req);
	if (unlikely(!cache))
@@ -256,7 +256,7 @@ int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags)

	ret = file->f_op->uring_cmd(ioucmd, issue_flags);
	if (ret == -EAGAIN) {
		struct uring_cache *cache = req->async_data;
		struct io_uring_cmd_data *cache = req->async_data;

		if (ioucmd->sqe != (void *) cache)
			memcpy(cache, ioucmd->sqe, uring_sqe_size(req->ctx));
+0 −4
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0

struct uring_cache {
	struct io_uring_sqe sqes[2];
};

int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags);
int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);