Add a wrapper function, iomap_bio_ioend_error(), around the bio error handling so that callers that do not have CONFIG_BLOCK set may also use iomap for buffered io. No functional changes. Signed-off-by: Joanne Koong <joannelkoong@xxxxxxxxx> --- fs/iomap/buffered-io-bio.c | 6 ++++++ fs/iomap/buffered-io.c | 6 ++---- fs/iomap/internal.h | 2 ++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/fs/iomap/buffered-io-bio.c b/fs/iomap/buffered-io-bio.c index e27a43291653..89c06cabbb1b 100644 --- a/fs/iomap/buffered-io-bio.c +++ b/fs/iomap/buffered-io-bio.c @@ -145,6 +145,12 @@ static void iomap_writepage_end_bio(struct bio *bio) iomap_finish_ioend_buffered(ioend); } +void iomap_bio_ioend_error(struct iomap_writepage_ctx *wpc, int error) +{ + wpc->ioend->io_bio.bi_status = errno_to_blk_status(error); + bio_endio(&wpc->ioend->io_bio); +} + static struct iomap_ioend *iomap_alloc_ioend(struct iomap_writepage_ctx *wpc, struct writeback_control *wbc, struct inode *inode, loff_t pos, u16 ioend_flags) diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 45c701af3f0c..9ce792adf8a4 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -1466,10 +1466,8 @@ int iomap_submit_ioend(struct iomap_writepage_ctx *wpc, int error) submit_bio(&wpc->ioend->io_bio); } - if (error) { - wpc->ioend->io_bio.bi_status = errno_to_blk_status(error); - bio_endio(&wpc->ioend->io_bio); - } + if (error) + iomap_bio_ioend_error(wpc, error); wpc->ioend = NULL; return error; diff --git a/fs/iomap/internal.h b/fs/iomap/internal.h index bbef4b947633..664554ffb8bf 100644 --- a/fs/iomap/internal.h +++ b/fs/iomap/internal.h @@ -43,10 +43,12 @@ int iomap_bio_add_to_ioend(struct iomap_writepage_ctx *wpc, void iomap_bio_readpage(const struct iomap *iomap, loff_t pos, struct iomap_readpage_ctx *ctx, size_t poff, size_t plen, loff_t length); +void iomap_bio_ioend_error(struct iomap_writepage_ctx *wpc, int error); #else #define iomap_bio_read_folio_sync(...) (-ENOSYS) #define iomap_bio_add_to_ioend(...) (-ENOSYS) #define iomap_bio_readpage(...) ((void)0) +#define iomap_bio_ioend_error(...) ((void)0) #endif /* CONFIG_BLOCK */ #endif /* _IOMAP_INTERNAL_H */ -- 2.47.1