From: Matthew Wilcox (Oracle) Date: Mon, 18 Oct 2021 14:39:06 +0000 (-0400) Subject: iov_iter: Add copy_folio_to_iter() X-Git-Tag: v5.17-rc1~107^2~43 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d9c19d32d86fa54934b632c4314beb067bf98378;p=thirdparty%2Fkernel%2Flinux.git iov_iter: Add copy_folio_to_iter() This wrapper around copy_page_to_iter() works because copy_page_to_iter() handles compound pages correctly. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: William Kucharski --- diff --git a/include/linux/uio.h b/include/linux/uio.h index 6350354f97e90..43321dbebba81 100644 --- a/include/linux/uio.h +++ b/include/linux/uio.h @@ -7,6 +7,7 @@ #include #include +#include #include struct page; @@ -146,6 +147,12 @@ size_t _copy_to_iter(const void *addr, size_t bytes, struct iov_iter *i); size_t _copy_from_iter(void *addr, size_t bytes, struct iov_iter *i); size_t _copy_from_iter_nocache(void *addr, size_t bytes, struct iov_iter *i); +static inline size_t copy_folio_to_iter(struct folio *folio, size_t offset, + size_t bytes, struct iov_iter *i) +{ + return copy_page_to_iter(&folio->page, offset, bytes, i); +} + static __always_inline __must_check size_t copy_to_iter(const void *addr, size_t bytes, struct iov_iter *i) {