Hi Jens, I haven't looked at the change in detail, but I'm wondering if this would be needed in stable too? metze Am 11.03.20 um 19:30 schrieb Jens Axboe: > Ensure we keep the truncated value, if we did truncate it. If not, we > might read/write more than the registered buffer size. > > Also for retry, ensure that we return the truncated mapped value for > the vectorized versions of the read/write commands. > > Signed-off-by: Jens Axboe > > --- > > diff --git a/fs/io_uring.c b/fs/io_uring.c > index 9f1a462eb780..55afae6f0cf4 100644 > --- a/fs/io_uring.c > +++ b/fs/io_uring.c > @@ -2360,6 +2360,7 @@ static ssize_t io_import_iovec(int rw, struct io_kiocb *req, > *iovec = NULL; > return PTR_ERR(buf); > } > + req->rw.len = sqe_len; > } > > ret = import_single_range(rw, buf, sqe_len, *iovec, iter); > @@ -2379,8 +2380,10 @@ static ssize_t io_import_iovec(int rw, struct io_kiocb *req, > > if (req->flags & REQ_F_BUFFER_SELECT) { > ret = io_iov_buffer_select(req, *iovec, needs_lock); > - if (!ret) > - iov_iter_init(iter, rw, *iovec, 1, (*iovec)->iov_len); > + if (!ret) { > + ret = (*iovec)->iov_len; > + iov_iter_init(iter, rw, *iovec, 1, ret); > + } > *iovec = NULL; > return ret; > } >