Lines Matching refs:iter
184 iov_iter_restore(&io->s.iter, &io->s.iter_state);
374 struct iov_iter *iter = &s->iter;
382 ret = io_import_fixed(ddir, iter, req->imu, rw->addr, rw->len);
401 ret = import_ubuf(ddir, buf, sqe_len, iter);
408 ret = __import_iovec(ddir, buf, sqe_len, UIO_FASTIOV, &iovec, iter,
423 iov_iter_save_state(&s->iter, &s->iter_state);
436 static ssize_t loop_rw_iter(int ddir, struct io_rw *rw, struct iov_iter *iter)
456 while (iov_iter_count(iter)) {
461 if (iter_is_ubuf(iter)) {
462 addr = iter->ubuf + iter->iov_offset;
463 len = iov_iter_count(iter);
464 } else if (!iov_iter_is_bvec(iter)) {
465 addr = iter_iov_addr(iter);
466 len = iter_iov_len(iter);
483 if (!iov_iter_is_bvec(iter)) {
484 iov_iter_advance(iter, nr);
499 const struct iovec *fast_iov, struct iov_iter *iter)
503 memcpy(&io->s.iter, iter, sizeof(*iter));
507 if (iov_iter_is_bvec(iter) || iter_is_ubuf(iter))
512 io->s.iter.__iov = io->s.fast_iov;
513 if (iter->__iov != fast_iov) {
514 iov_off = iter_iov(iter) - fast_iov;
515 io->s.iter.__iov += iov_off;
519 sizeof(struct iovec) * iter->nr_segs);
538 io_req_map_rw(req, iovec, s->fast_iov, &s->iter);
540 /* we've copied and mapped the iter, ensure state is saved */
541 iov_iter_save_state(&iorw->s.iter, &iorw->s.iter_state);
651 static inline int io_iter_do_read(struct io_rw *rw, struct iov_iter *iter)
656 return call_read_iter(file, &rw->kiocb, iter);
658 return loop_rw_iter(READ, rw, iter);
749 iov_iter_restore(&s->iter, &s->iter_state);
757 req->cqe.res = iov_iter_count(&s->iter);
779 ret = io_iter_do_read(rw, &s->iter);
804 * Don't depend on the iter state matching what was consumed, or being
808 iov_iter_restore(&s->iter, &s->iter_state);
821 * We've restored and mapped the iter to match.
827 * above or inside this loop. Advance the iter by the bytes
830 iov_iter_advance(&s->iter, ret);
831 if (!iov_iter_count(&s->iter))
834 iov_iter_save_state(&s->iter, &s->iter_state);
842 req->cqe.res = iov_iter_count(&s->iter);
849 ret = io_iter_do_read(rw, &s->iter);
854 iov_iter_restore(&s->iter, &s->iter_state);
881 iov_iter_restore(&s->iter, &s->iter_state);
889 req->cqe.res = iov_iter_count(&s->iter);
921 ret2 = call_write_iter(req->file, kiocb, &s->iter);
923 ret2 = loop_rw_iter(WRITE, rw, &s->iter);
957 iov_iter_save_state(&s->iter, &s->iter_state);
972 iov_iter_restore(&s->iter, &s->iter_state);