Lines Matching refs:iovec
705 struct iovec fast_iov[UIO_FASTIOV];
707 struct iovec *free_iov;
714 struct iovec fast_iov[UIO_FASTIOV];
715 const struct iovec *free_iovec;
3103 static ssize_t io_compat_import(struct io_kiocb *req, struct iovec *iov, in io_compat_import()
3129 static ssize_t __io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov, in __io_iov_buffer_select()
3132 struct iovec __user *uiov = u64_to_user_ptr(req->rw.addr); in __io_iov_buffer_select()
3150 static ssize_t io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov, in io_iov_buffer_select()
3172 static int io_import_iovec(int rw, struct io_kiocb *req, struct iovec **iovec, in io_import_iovec() argument
3181 *iovec = NULL; in io_import_iovec()
3197 ret = import_single_range(rw, buf, sqe_len, *iovec, iter); in io_import_iovec()
3198 *iovec = NULL; in io_import_iovec()
3203 ret = io_iov_buffer_select(req, *iovec, needs_lock); in io_import_iovec()
3205 iov_iter_init(iter, rw, *iovec, 1, (*iovec)->iov_len); in io_import_iovec()
3206 *iovec = NULL; in io_import_iovec()
3210 return __import_iovec(rw, buf, sqe_len, UIO_FASTIOV, iovec, iter, in io_import_iovec()
3240 struct iovec iovec; in loop_rw_iter() local
3244 iovec = iov_iter_iovec(iter); in loop_rw_iter()
3246 iovec.iov_base = u64_to_user_ptr(req->rw.addr); in loop_rw_iter()
3247 iovec.iov_len = req->rw.len; in loop_rw_iter()
3251 nr = file->f_op->read(file, iovec.iov_base, in loop_rw_iter()
3252 iovec.iov_len, io_kiocb_ppos(kiocb)); in loop_rw_iter()
3254 nr = file->f_op->write(file, iovec.iov_base, in loop_rw_iter()
3255 iovec.iov_len, io_kiocb_ppos(kiocb)); in loop_rw_iter()
3270 if (nr != iovec.iov_len) in loop_rw_iter()
3277 static void io_req_map_rw(struct io_kiocb *req, const struct iovec *iovec, in io_req_map_rw() argument
3278 const struct iovec *fast_iov, struct iov_iter *iter) in io_req_map_rw()
3283 rw->free_iovec = iovec; in io_req_map_rw()
3288 if (!iovec) { in io_req_map_rw()
3298 sizeof(struct iovec) * iter->nr_segs); in io_req_map_rw()
3311 static int io_setup_async_rw(struct io_kiocb *req, const struct iovec *iovec, in io_setup_async_rw() argument
3312 const struct iovec *fast_iov, in io_setup_async_rw()
3321 kfree(iovec); in io_setup_async_rw()
3325 io_req_map_rw(req, iovec, fast_iov, iter); in io_setup_async_rw()
3336 struct iovec *iov = iorw->fast_iov; in io_rw_prep_async()
3447 struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs; in io_read() local
3464 iovec = NULL; in io_read()
3466 ret = io_import_iovec(READ, req, &iovec, iter, !force_nonblock); in io_read()
3482 ret = io_setup_async_rw(req, iovec, inline_vecs, iter, true); in io_read()
3488 kfree(iovec); in io_read()
3518 ret2 = io_setup_async_rw(req, iovec, inline_vecs, iter, true); in io_read()
3522 iovec = NULL; in io_read()
3568 if (iovec) in io_read()
3569 kfree(iovec); in io_read()
3582 struct iovec inline_vecs[UIO_FASTIOV], *iovec = inline_vecs; in io_write() local
3594 iovec = NULL; in io_write()
3596 ret = io_import_iovec(WRITE, req, &iovec, iter, !force_nonblock); in io_write()
3667 ret = io_setup_async_rw(req, iovec, inline_vecs, iter, false); in io_write()
3672 if (iovec) in io_write()
3673 kfree(iovec); in io_write()
4793 struct iovec iov; in io_send()
4835 struct iovec __user *uiov; in __io_recvmsg_copy_hdr()
4894 ret = __import_iovec(READ, (struct iovec __user *)uiov, len, in __io_compat_recvmsg_copy_hdr()
5033 struct iovec iov; in io_recv()
8838 static int io_copy_iov(struct io_ring_ctx *ctx, struct iovec *dst, in io_copy_iov()
8841 struct iovec __user *src; in io_copy_iov()
8857 src = (struct iovec __user *) arg; in io_copy_iov()
8932 static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov, in io_sqe_buffer_register()
9038 static int io_buffer_validate(struct iovec *iov) in io_buffer_validate()
9068 struct iovec iov; in io_sqe_buffers_register()
9119 struct iovec iov, __user *iovs = u64_to_user_ptr(up->data); in __io_sqe_buffers_update()