Lines Matching refs:iovec
706 struct iovec fast_iov[UIO_FASTIOV];
708 struct iovec *free_iov;
715 struct iovec fast_iov[UIO_FASTIOV];
716 const struct iovec *free_iovec;
3247 static ssize_t io_compat_import(struct io_kiocb *req, struct iovec *iov,
3273 static ssize_t __io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov,
3276 struct iovec __user *uiov = u64_to_user_ptr(req->rw.addr);
3294 static ssize_t io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov,
3316 static int io_import_iovec(int rw, struct io_kiocb *req, struct iovec **iovec,
3325 *iovec = NULL;
3341 ret = import_single_range(rw, buf, sqe_len, *iovec, iter);
3342 *iovec = NULL;
3347 ret = io_iov_buffer_select(req, *iovec, needs_lock);
3349 iov_iter_init(iter, rw, *iovec, 1, (*iovec)->iov_len);
3350 *iovec = NULL;
3354 return __import_iovec(rw, buf, sqe_len, UIO_FASTIOV, iovec, iter,
3387 struct iovec iovec;
3391 iovec = iov_iter_iovec(iter);
3393 iovec.iov_base = u64_to_user_ptr(req->rw.addr);
3394 iovec.iov_len = req->rw.len;
3398 nr = file->f_op->read(file, iovec.iov_base,
3399 iovec.iov_len, ppos);
3401 nr = file->f_op->write(file, iovec.iov_base,
3402 iovec.iov_len, ppos);
3419 if (nr != iovec.iov_len)
3426 static void io_req_map_rw(struct io_kiocb *req, const struct iovec *iovec,
3427 const struct iovec *fast_iov, struct iov_iter *iter)
3432 rw->free_iovec = iovec;
3437 if (!iovec) {
3447 sizeof(struct iovec) * iter->nr_segs);
3460 static int io_setup_async_rw(struct io_kiocb *req, const struct iovec *iovec,
3461 const struct iovec *fast_iov,
3470 kfree(iovec);
3474 io_req_map_rw(req, iovec, fast_iov, iter);
3485 struct iovec *iov = iorw->fast_iov;
3599 struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs;
3617 iovec = NULL;
3619 ret = io_import_iovec(READ, req, &iovec, iter, !force_nonblock);
3635 ret = io_setup_async_rw(req, iovec, inline_vecs, iter, true);
3643 kfree(iovec);
3673 ret2 = io_setup_async_rw(req, iovec, inline_vecs, iter, true);
3677 iovec = NULL;
3724 if (iovec)
3725 kfree(iovec);
3738 struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs;
3751 iovec = NULL;
3753 ret = io_import_iovec(WRITE, req, &iovec, iter, !force_nonblock);
3826 ret = io_setup_async_rw(req, iovec, inline_vecs, iter, false);
3836 if (iovec)
3837 kfree(iovec);
4858 struct iovec iov;
4911 struct iovec __user *uiov;
4970 ret = __import_iovec(READ, (struct iovec __user *)uiov, len,
5129 struct iovec iov;
8953 static int io_copy_iov(struct io_ring_ctx *ctx, struct iovec *dst,
8956 struct iovec __user *src;
8972 src = (struct iovec __user *) arg;
9047 static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov,
9156 static int io_buffer_validate(struct iovec *iov)
9186 struct iovec iov;
9237 struct iovec iov, __user *iovs = u64_to_user_ptr(up->data);