Lines Matching refs:iovec
696 struct iovec fast_iov[UIO_FASTIOV];
698 struct iovec *free_iov;
707 struct iovec fast_iov[UIO_FASTIOV];
712 const struct iovec *free_iovec;
3153 static ssize_t io_compat_import(struct io_kiocb *req, struct iovec *iov, in io_compat_import()
3179 static ssize_t __io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov, in __io_iov_buffer_select()
3182 struct iovec __user *uiov = u64_to_user_ptr(req->rw.addr); in __io_iov_buffer_select()
3200 static ssize_t io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov, in io_iov_buffer_select()
3221 static struct iovec *__io_import_iovec(int rw, struct io_kiocb *req, in __io_import_iovec()
3227 struct iovec *iovec; in __io_import_iovec() local
3256 iovec = s->fast_iov; in __io_import_iovec()
3258 ret = io_iov_buffer_select(req, iovec, issue_flags); in __io_import_iovec()
3260 iov_iter_init(iter, rw, iovec, 1, iovec->iov_len); in __io_import_iovec()
3264 ret = __import_iovec(rw, buf, sqe_len, UIO_FASTIOV, &iovec, iter, in __io_import_iovec()
3268 return iovec; in __io_import_iovec()
3272 struct iovec **iovec, struct io_rw_state *s, in io_import_iovec() argument
3275 *iovec = __io_import_iovec(rw, req, s, issue_flags); in io_import_iovec()
3276 if (unlikely(IS_ERR(*iovec))) in io_import_iovec()
3277 return PTR_ERR(*iovec); in io_import_iovec()
3310 struct iovec iovec; in loop_rw_iter() local
3314 iovec = iov_iter_iovec(iter); in loop_rw_iter()
3316 iovec.iov_base = u64_to_user_ptr(req->rw.addr); in loop_rw_iter()
3317 iovec.iov_len = req->rw.len; in loop_rw_iter()
3321 nr = file->f_op->read(file, iovec.iov_base, in loop_rw_iter()
3322 iovec.iov_len, io_kiocb_ppos(kiocb)); in loop_rw_iter()
3324 nr = file->f_op->write(file, iovec.iov_base, in loop_rw_iter()
3325 iovec.iov_len, io_kiocb_ppos(kiocb)); in loop_rw_iter()
3340 if (nr != iovec.iov_len) in loop_rw_iter()
3347 static void io_req_map_rw(struct io_kiocb *req, const struct iovec *iovec, in io_req_map_rw() argument
3348 const struct iovec *fast_iov, struct iov_iter *iter) in io_req_map_rw()
3353 rw->free_iovec = iovec; in io_req_map_rw()
3358 if (!iovec) { in io_req_map_rw()
3368 sizeof(struct iovec) * iter->nr_segs); in io_req_map_rw()
3385 static int io_setup_async_rw(struct io_kiocb *req, const struct iovec *iovec, in io_setup_async_rw() argument
3394 kfree(iovec); in io_setup_async_rw()
3398 io_req_map_rw(req, iovec, s->fast_iov, &s->iter); in io_setup_async_rw()
3409 struct iovec *iov; in io_rw_prep_async()
3521 struct iovec *iovec; in io_read() local
3528 ret = io_import_iovec(READ, req, &iovec, s, issue_flags); in io_read()
3540 iovec = NULL; in io_read()
3547 ret = io_setup_async_rw(req, iovec, s, true); in io_read()
3558 kfree(iovec); in io_read()
3588 ret2 = io_setup_async_rw(req, iovec, s, true); in io_read()
3592 iovec = NULL; in io_read()
3635 if (iovec) in io_read()
3636 kfree(iovec); in io_read()
3651 struct iovec *iovec; in io_write() local
3657 ret = io_import_iovec(WRITE, req, &iovec, s, issue_flags); in io_write()
3665 iovec = NULL; in io_write()
3733 ret = io_setup_async_rw(req, iovec, s, false); in io_write()
3738 if (iovec) in io_write()
3739 kfree(iovec); in io_write()
4861 struct iovec iov; in io_send()
4903 struct iovec __user *uiov; in __io_recvmsg_copy_hdr()
4962 ret = __import_iovec(READ, (struct iovec __user *)uiov, len, in __io_compat_recvmsg_copy_hdr()
5095 struct iovec iov; in io_recv()
8932 static int io_copy_iov(struct io_ring_ctx *ctx, struct iovec *dst, in io_copy_iov()
8935 struct iovec __user *src; in io_copy_iov()
8951 src = (struct iovec __user *) arg; in io_copy_iov()
9026 static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov, in io_sqe_buffer_register()
9132 static int io_buffer_validate(struct iovec *iov) in io_buffer_validate()
9162 struct iovec iov; in io_sqe_buffers_register()
9213 struct iovec iov, __user *iovs = u64_to_user_ptr(up->data); in __io_sqe_buffers_update()