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

 



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





[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux