diff options
-rw-r--r-- | include/linux/uio.h | 2 | ||||
-rw-r--r-- | mm/iov_iter.c | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/linux/uio.h b/include/linux/uio.h index 28ed2d904deb..c567655b9595 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h | |||
@@ -87,6 +87,8 @@ size_t iov_iter_zero(size_t bytes, struct iov_iter *); | |||
87 | unsigned long iov_iter_alignment(const struct iov_iter *i); | 87 | unsigned long iov_iter_alignment(const struct iov_iter *i); |
88 | void iov_iter_init(struct iov_iter *i, int direction, const struct iovec *iov, | 88 | void iov_iter_init(struct iov_iter *i, int direction, const struct iovec *iov, |
89 | unsigned long nr_segs, size_t count); | 89 | unsigned long nr_segs, size_t count); |
90 | void iov_iter_kvec(struct iov_iter *i, int direction, const struct kvec *iov, | ||
91 | unsigned long nr_segs, size_t count); | ||
90 | ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages, | 92 | ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages, |
91 | size_t maxsize, unsigned maxpages, size_t *start); | 93 | size_t maxsize, unsigned maxpages, size_t *start); |
92 | ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, struct page ***pages, | 94 | ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, struct page ***pages, |
diff --git a/mm/iov_iter.c b/mm/iov_iter.c index 1d2cdeb57c58..88c052e63a1d 100644 --- a/mm/iov_iter.c +++ b/mm/iov_iter.c | |||
@@ -479,6 +479,19 @@ size_t iov_iter_single_seg_count(const struct iov_iter *i) | |||
479 | } | 479 | } |
480 | EXPORT_SYMBOL(iov_iter_single_seg_count); | 480 | EXPORT_SYMBOL(iov_iter_single_seg_count); |
481 | 481 | ||
482 | void iov_iter_kvec(struct iov_iter *i, int direction, | ||
483 | const struct kvec *iov, unsigned long nr_segs, | ||
484 | size_t count) | ||
485 | { | ||
486 | BUG_ON(!(direction & ITER_KVEC)); | ||
487 | i->type = direction; | ||
488 | i->kvec = (struct kvec *)iov; | ||
489 | i->nr_segs = nr_segs; | ||
490 | i->iov_offset = 0; | ||
491 | i->count = count; | ||
492 | } | ||
493 | EXPORT_SYMBOL(iov_iter_kvec); | ||
494 | |||
482 | unsigned long iov_iter_alignment(const struct iov_iter *i) | 495 | unsigned long iov_iter_alignment(const struct iov_iter *i) |
483 | { | 496 | { |
484 | unsigned long res = 0; | 497 | unsigned long res = 0; |