Allow the caller to specify how much of the page to add to the ioend instead of assuming a single sector. Somebody should probably enhance iomap_writepage_map() to make one call per extent instead of one per block. Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> --- fs/iomap/buffered-io.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 024e16fb95a8..5b69cea71f71 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -1304,12 +1304,12 @@ static bool iomap_can_add_to_ioend(struct iomap *iomap, * first; otherwise finish off the current ioend and start another. */ static struct iomap_ioend *iomap_add_to_ioend(struct inode *inode, - loff_t pos, struct folio *folio, struct iomap_page *iop, - struct iomap *iomap, struct iomap_ioend *ioend, - struct writeback_control *wbc, struct list_head *iolist) + loff_t pos, size_t len, struct folio *folio, + struct iomap_page *iop, struct iomap *iomap, + struct iomap_ioend *ioend, struct writeback_control *wbc, + struct list_head *iolist) { sector_t sector = iomap_sector(iomap, pos); - unsigned len = i_blocksize(inode); size_t poff = offset_in_folio(folio, pos); if (!ioend || !iomap_can_add_to_ioend(iomap, ioend, pos, sector)) { @@ -1377,7 +1377,7 @@ iomap_writepage_map(struct iomap_writepage_ctx *wpc, continue; if (wpc->iomap.type == IOMAP_HOLE) continue; - wpc->ioend = iomap_add_to_ioend(inode, pos, folio, iop, + wpc->ioend = iomap_add_to_ioend(inode, pos, len, folio, iop, &wpc->iomap, wpc->ioend, wbc, &submit_list); count++; } -- 2.34.1