Re: [PATCH v1 11/16] iomap: make start folio read and finish folio read public APIs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 29, 2025 at 04:56:22PM -0700, Joanne Koong wrote:
> Make iomap_start_folio_read() and iomap_finish_folio_read() publicly
> accessible. These need to be accessible in order to support
> user-provided read folio callbacks for read/readahead.
> 
> Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx>

Looks decent,
Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx>

--D

> ---
>  fs/iomap/buffered-io.c | 10 ++++++----
>  include/linux/iomap.h  |  3 +++
>  2 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c
> index 6a9f9a9e591f..5d153c6b16b6 100644
> --- a/fs/iomap/buffered-io.c
> +++ b/fs/iomap/buffered-io.c
> @@ -323,8 +323,7 @@ struct iomap_readfolio_ctx {
>  	struct readahead_control *rac;
>  };
>  
> -#ifdef CONFIG_BLOCK
> -static void iomap_start_folio_read(struct folio *folio, size_t len)
> +void iomap_start_folio_read(struct folio *folio, size_t len)
>  {
>  	struct iomap_folio_state *ifs = folio->private;
>  
> @@ -334,9 +333,10 @@ static void iomap_start_folio_read(struct folio *folio, size_t len)
>  		spin_unlock_irq(&ifs->state_lock);
>  	}
>  }
> +EXPORT_SYMBOL_GPL(iomap_start_folio_read);
>  
> -static void iomap_finish_folio_read(struct folio *folio, size_t off,
> -		size_t len, int error)
> +void iomap_finish_folio_read(struct folio *folio, size_t off, size_t len,
> +		int error)
>  {
>  	struct iomap_folio_state *ifs = folio->private;
>  	bool uptodate = !error;
> @@ -356,7 +356,9 @@ static void iomap_finish_folio_read(struct folio *folio, size_t off,
>  	if (finished)
>  		folio_end_read(folio, uptodate);
>  }
> +EXPORT_SYMBOL_GPL(iomap_finish_folio_read);
>  
> +#ifdef CONFIG_BLOCK
>  static void iomap_read_end_io(struct bio *bio)
>  {
>  	int error = blk_status_to_errno(bio->bi_status);
> diff --git a/include/linux/iomap.h b/include/linux/iomap.h
> index 73dceabc21c8..0938c4a57f4c 100644
> --- a/include/linux/iomap.h
> +++ b/include/linux/iomap.h
> @@ -467,6 +467,9 @@ ssize_t iomap_add_to_ioend(struct iomap_writepage_ctx *wpc, struct folio *folio,
>  		loff_t pos, loff_t end_pos, unsigned int dirty_len);
>  int iomap_ioend_writeback_submit(struct iomap_writepage_ctx *wpc, int error);
>  
> +void iomap_start_folio_read(struct folio *folio, size_t len);
> +void iomap_finish_folio_read(struct folio *folio, size_t off, size_t len,
> +		int error);
>  void iomap_start_folio_write(struct inode *inode, struct folio *folio,
>  		size_t len);
>  void iomap_finish_folio_write(struct inode *inode, struct folio *folio,
> -- 
> 2.47.3
> 
> 




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux