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