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