io_uring: remove duplicated io_size from rw
authorPavel Begunkov <asml.silence@gmail.com>
Sat, 7 Nov 2020 13:16:26 +0000 (13:16 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 18 Sep 2021 11:40:35 +0000 (13:40 +0200)
[ Upstream commit 632546c4b5a4dad8e3ac456406c65c0db9a0b570 ]

io_size and iov_count in io_read() and io_write() hold the same value,
kill the last one.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/io_uring.c

index 8de0f52fd29d56a5047259be3f6d98e6b272c7c0..d0089039fee7986d0f4aa7ecf9cde606ad9690a1 100644 (file)
@@ -3413,7 +3413,6 @@ static int io_read(struct io_kiocb *req, bool force_nonblock,
        struct iov_iter __iter, *iter = &__iter;
        struct io_async_rw *rw = req->async_data;
        ssize_t io_size, ret, ret2;
-       size_t iov_count;
        bool no_async;
 
        if (rw)
@@ -3422,8 +3421,7 @@ static int io_read(struct io_kiocb *req, bool force_nonblock,
        ret = io_import_iovec(READ, req, &iovec, iter, !force_nonblock);
        if (ret < 0)
                return ret;
-       iov_count = iov_iter_count(iter);
-       io_size = iov_count;
+       io_size = iov_iter_count(iter);
        req->result = io_size;
        ret = 0;
 
@@ -3439,7 +3437,7 @@ static int io_read(struct io_kiocb *req, bool force_nonblock,
        if (no_async)
                goto copy_iov;
 
-       ret = rw_verify_area(READ, req->file, io_kiocb_ppos(kiocb), iov_count);
+       ret = rw_verify_area(READ, req->file, io_kiocb_ppos(kiocb), io_size);
        if (unlikely(ret))
                goto out_free;
 
@@ -3458,7 +3456,7 @@ static int io_read(struct io_kiocb *req, bool force_nonblock,
                if (req->file->f_flags & O_NONBLOCK)
                        goto done;
                /* some cases will consume bytes even on error returns */
-               iov_iter_revert(iter, iov_count - iov_iter_count(iter));
+               iov_iter_revert(iter, io_size - iov_iter_count(iter));
                ret = 0;
                goto copy_iov;
        } else if (ret < 0) {
@@ -3542,7 +3540,6 @@ static int io_write(struct io_kiocb *req, bool force_nonblock,
        struct kiocb *kiocb = &req->rw.kiocb;
        struct iov_iter __iter, *iter = &__iter;
        struct io_async_rw *rw = req->async_data;
-       size_t iov_count;
        ssize_t ret, ret2, io_size;
 
        if (rw)
@@ -3551,8 +3548,7 @@ static int io_write(struct io_kiocb *req, bool force_nonblock,
        ret = io_import_iovec(WRITE, req, &iovec, iter, !force_nonblock);
        if (ret < 0)
                return ret;
-       iov_count = iov_iter_count(iter);
-       io_size = iov_count;
+       io_size = iov_iter_count(iter);
        req->result = io_size;
 
        /* Ensure we clear previously set non-block flag */
@@ -3570,7 +3566,7 @@ static int io_write(struct io_kiocb *req, bool force_nonblock,
            (req->flags & REQ_F_ISREG))
                goto copy_iov;
 
-       ret = rw_verify_area(WRITE, req->file, io_kiocb_ppos(kiocb), iov_count);
+       ret = rw_verify_area(WRITE, req->file, io_kiocb_ppos(kiocb), io_size);
        if (unlikely(ret))
                goto out_free;
 
@@ -3613,7 +3609,7 @@ done:
        } else {
 copy_iov:
                /* some cases will consume bytes even on error returns */
-               iov_iter_revert(iter, iov_count - iov_iter_count(iter));
+               iov_iter_revert(iter, io_size - iov_iter_count(iter));
                ret = io_setup_async_rw(req, iovec, inline_vecs, iter, false);
                if (!ret)
                        return -EAGAIN;