Re: [PATCH] iomap: Export iomap_page_create and iomap_set_range_uptodate

Darrick J. Wong
2019-12-10T20:33:01Z

On Tue, Dec 10, 2019 at 11:29:16AM +0100, Andreas Gruenbacher wrote:
> These two functions are needed by filesystems for converting inline
> ("stuffed") inodes into non-inline inodes.
>
> Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>

Looks fine to me... this is a 5.6 change, correct?

Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>

--D

> ---
> fs/iomap/buffered-io.c | 6 ++++--
> include/linux/iomap.h | 5 +++++
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index 828444e14d09..e8f6d7ba4e3c 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -41,7 +41,7 @@ static inline struct iomap_page *to_iomap_page(struct page *page)
>
> static struct bio_set iomap_ioend_bioset;
>
> -static struct iomap_page *
> +struct iomap_page *
> iomap_page_create(struct inode *inode, struct page *page)
> {
> struct iomap_page *iop = to_iomap_page(page);
> @@ -64,6 +64,7 @@ iomap_page_create(struct inode *inode, struct page *page)
> SetPagePrivate(page);
> return iop;
> }
> +EXPORT_SYMBOL(iomap_page_create);
>
> static void
> iomap_page_release(struct page *page)
> @@ -164,7 +165,7 @@ iomap_iop_set_range_uptodate(struct page *page, unsigned off, unsigned len)
> spin_unlock_irqrestore(&iop->uptodate_lock, flags);
> }
>
> -static void
> +void
> iomap_set_range_uptodate(struct page *page, unsigned off, unsigned len)
> {
> if (PageError(page))
> @@ -175,6 +176,7 @@ iomap_set_range_uptodate(struct page *page, unsigned off, unsigned len)
> else
> SetPageUptodate(page);
> }
> +EXPORT_SYMBOL(iomap_set_range_uptodate);
>
> static void
> iomap_read_finish(struct iomap_page *iop, struct page *page)
> diff --git a/include/linux/iomap.h b/include/linux/iomap.h
> index 8b09463dae0d..b00f9bc396b1 100644
> --- a/include/linux/iomap.h
> +++ b/include/linux/iomap.h
> @@ -13,6 +13,7 @@
> struct address_space;
> struct fiemap_extent_info;
> struct inode;
> +struct iomap_page;
> struct iomap_writepage_ctx;
> struct iov_iter;
> struct kiocb;
> @@ -152,6 +153,10 @@ loff_t iomap_apply(struct inode *inode, loff_t pos, loff_t length,
> unsigned flags, const struct iomap_ops *ops, void *data,
> iomap_actor_t actor);
>
> +struct iomap_page *iomap_page_create(struct inode *inode, struct page *page);
> +void iomap_set_range_uptodate(struct page *page, unsigned off, unsigned len);
> +
> +
> ssize_t iomap_file_buffered_write(struct kiocb *iocb, struct iov_iter *from,
> const struct iomap_ops *ops);
> int iomap_readpage(struct page *page, const struct iomap_ops *ops);
> --
> 2.20.1
>