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; |
