mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
io_uring: remove 'state' argument from io_{read,write} path
Since commit 09bb839434
we don't use the state argument for any sort
of on-stack caching in the io read and write path. Remove the stale
and unused argument from them, and bubble it up to __io_submit_sqe()
and down to io_prep_rw().
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
fb775faa9e
commit
8358e3a826
@ -740,7 +740,7 @@ static bool io_file_supports_async(struct file *file)
|
||||
}
|
||||
|
||||
static int io_prep_rw(struct io_kiocb *req, const struct sqe_submit *s,
|
||||
bool force_nonblock, struct io_submit_state *state)
|
||||
bool force_nonblock)
|
||||
{
|
||||
const struct io_uring_sqe *sqe = s->sqe;
|
||||
struct io_ring_ctx *ctx = req->ctx;
|
||||
@ -938,7 +938,7 @@ static void io_async_list_note(int rw, struct io_kiocb *req, size_t len)
|
||||
}
|
||||
|
||||
static int io_read(struct io_kiocb *req, const struct sqe_submit *s,
|
||||
bool force_nonblock, struct io_submit_state *state)
|
||||
bool force_nonblock)
|
||||
{
|
||||
struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs;
|
||||
struct kiocb *kiocb = &req->rw;
|
||||
@ -947,7 +947,7 @@ static int io_read(struct io_kiocb *req, const struct sqe_submit *s,
|
||||
size_t iov_count;
|
||||
int ret;
|
||||
|
||||
ret = io_prep_rw(req, s, force_nonblock, state);
|
||||
ret = io_prep_rw(req, s, force_nonblock);
|
||||
if (ret)
|
||||
return ret;
|
||||
file = kiocb->ki_filp;
|
||||
@ -985,7 +985,7 @@ static int io_read(struct io_kiocb *req, const struct sqe_submit *s,
|
||||
}
|
||||
|
||||
static int io_write(struct io_kiocb *req, const struct sqe_submit *s,
|
||||
bool force_nonblock, struct io_submit_state *state)
|
||||
bool force_nonblock)
|
||||
{
|
||||
struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs;
|
||||
struct kiocb *kiocb = &req->rw;
|
||||
@ -994,7 +994,7 @@ static int io_write(struct io_kiocb *req, const struct sqe_submit *s,
|
||||
size_t iov_count;
|
||||
int ret;
|
||||
|
||||
ret = io_prep_rw(req, s, force_nonblock, state);
|
||||
ret = io_prep_rw(req, s, force_nonblock);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
@ -1336,8 +1336,7 @@ static int io_poll_add(struct io_kiocb *req, const struct io_uring_sqe *sqe)
|
||||
}
|
||||
|
||||
static int __io_submit_sqe(struct io_ring_ctx *ctx, struct io_kiocb *req,
|
||||
const struct sqe_submit *s, bool force_nonblock,
|
||||
struct io_submit_state *state)
|
||||
const struct sqe_submit *s, bool force_nonblock)
|
||||
{
|
||||
int ret, opcode;
|
||||
|
||||
@ -1353,18 +1352,18 @@ static int __io_submit_sqe(struct io_ring_ctx *ctx, struct io_kiocb *req,
|
||||
case IORING_OP_READV:
|
||||
if (unlikely(s->sqe->buf_index))
|
||||
return -EINVAL;
|
||||
ret = io_read(req, s, force_nonblock, state);
|
||||
ret = io_read(req, s, force_nonblock);
|
||||
break;
|
||||
case IORING_OP_WRITEV:
|
||||
if (unlikely(s->sqe->buf_index))
|
||||
return -EINVAL;
|
||||
ret = io_write(req, s, force_nonblock, state);
|
||||
ret = io_write(req, s, force_nonblock);
|
||||
break;
|
||||
case IORING_OP_READ_FIXED:
|
||||
ret = io_read(req, s, force_nonblock, state);
|
||||
ret = io_read(req, s, force_nonblock);
|
||||
break;
|
||||
case IORING_OP_WRITE_FIXED:
|
||||
ret = io_write(req, s, force_nonblock, state);
|
||||
ret = io_write(req, s, force_nonblock);
|
||||
break;
|
||||
case IORING_OP_FSYNC:
|
||||
ret = io_fsync(req, s->sqe, force_nonblock);
|
||||
@ -1457,7 +1456,7 @@ restart:
|
||||
s->has_user = cur_mm != NULL;
|
||||
s->needs_lock = true;
|
||||
do {
|
||||
ret = __io_submit_sqe(ctx, req, s, false, NULL);
|
||||
ret = __io_submit_sqe(ctx, req, s, false);
|
||||
/*
|
||||
* We can get EAGAIN for polled IO even though
|
||||
* we're forcing a sync submission from here,
|
||||
@ -1623,7 +1622,7 @@ static int io_submit_sqe(struct io_ring_ctx *ctx, struct sqe_submit *s,
|
||||
if (unlikely(ret))
|
||||
goto out;
|
||||
|
||||
ret = __io_submit_sqe(ctx, req, s, true, state);
|
||||
ret = __io_submit_sqe(ctx, req, s, true);
|
||||
if (ret == -EAGAIN) {
|
||||
struct io_uring_sqe *sqe_copy;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user