Lines Matching refs:iter
39 struct iov_iter *iter) in blkdev_dio_invalid() argument
42 !bdev_iter_is_aligned(bdev, iter); in blkdev_dio_invalid()
48 struct iov_iter *iter, struct block_device *bdev, in __blkdev_direct_IO_simple() argument
67 if (iov_iter_rw(iter) == READ) { in __blkdev_direct_IO_simple()
69 if (user_backed_iter(iter)) in __blkdev_direct_IO_simple()
81 ret = bio_iov_iter_get_pages(&bio, iter); in __blkdev_direct_IO_simple()
86 if (iov_iter_rw(iter) == WRITE) in __blkdev_direct_IO_simple()
169 static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter, in __blkdev_direct_IO() argument
175 bool is_read = (iov_iter_rw(iter) == READ), is_sync; in __blkdev_direct_IO()
202 if (is_read && user_backed_iter(iter)) in __blkdev_direct_IO()
215 ret = bio_iov_iter_get_pages(bio, iter); in __blkdev_direct_IO()
230 if (unlikely(iov_iter_count(iter))) { in __blkdev_direct_IO()
251 nr_pages = bio_iov_vecs_to_alloc(iter, BIO_MAX_VECS); in __blkdev_direct_IO()
318 struct iov_iter *iter, in __blkdev_direct_IO_async() argument
322 bool is_read = iov_iter_rw(iter) == READ; in __blkdev_direct_IO_async()
342 if (iov_iter_is_bvec(iter)) { in __blkdev_direct_IO_async()
349 bio_iov_bvec_set(bio, iter); in __blkdev_direct_IO_async()
351 ret = bio_iov_iter_get_pages(bio, iter); in __blkdev_direct_IO_async()
358 if (user_backed_iter(iter)) { in __blkdev_direct_IO_async()
393 static ssize_t blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter) in blkdev_direct_IO() argument
398 if (!iov_iter_count(iter)) in blkdev_direct_IO()
401 if (blkdev_dio_invalid(bdev, iocb, iter)) in blkdev_direct_IO()
404 if (iov_iter_rw(iter) == WRITE) { in blkdev_direct_IO()
424 nr_pages = bio_iov_vecs_to_alloc(iter, BIO_MAX_VECS + 1); in blkdev_direct_IO()
427 return __blkdev_direct_IO_simple(iocb, iter, bdev, in blkdev_direct_IO()
429 return __blkdev_direct_IO_async(iocb, iter, bdev, nr_pages); in blkdev_direct_IO()
433 return __blkdev_direct_IO(iocb, iter, bdev, bio_max_segs(nr_pages)); in blkdev_direct_IO()