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)
committerJens Axboe <axboe@kernel.dk>
Wed, 9 Dec 2020 19:04:00 +0000 (12:04 -0700)
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>
fs/io_uring.c

index c1ac352..b74048b 100644 (file)
@@ -3464,7 +3464,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)
@@ -3473,8 +3472,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;
 
@@ -3490,7 +3488,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;
 
@@ -3509,7 +3507,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) {
@@ -3592,7 +3590,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)
@@ -3601,8 +3598,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 */
@@ -3620,7 +3616,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;
 
@@ -3663,7 +3659,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;