On Sun, Nov 26, 2023 at 01:47:10PM +0100, Christoph Hellwig wrote: > The io_folios member in struct iomap_ioend counts the number of folios > added to an ioend. It is only used at submission time and can thus be > moved to iomap_writepage_ctx instead. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> LGTM Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fs/iomap/buffered-io.c | 7 ++++--- > include/linux/iomap.h | 2 +- > 2 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c > index b1bcc43baf0caf..b28c57f8603303 100644 > --- a/fs/iomap/buffered-io.c > +++ b/fs/iomap/buffered-io.c > @@ -1685,10 +1685,11 @@ iomap_alloc_ioend(struct inode *inode, struct iomap_writepage_ctx *wpc, > ioend->io_flags = wpc->iomap.flags; > ioend->io_inode = inode; > ioend->io_size = 0; > - ioend->io_folios = 0; > ioend->io_offset = offset; > ioend->io_bio = bio; > ioend->io_sector = sector; > + > + wpc->nr_folios = 0; > return ioend; > } > > @@ -1732,7 +1733,7 @@ iomap_can_add_to_ioend(struct iomap_writepage_ctx *wpc, loff_t offset, > * also prevents long tight loops ending page writeback on all the > * folios in the ioend. > */ > - if (wpc->ioend->io_folios >= IOEND_BATCH_SIZE) > + if (wpc->nr_folios >= IOEND_BATCH_SIZE) > return false; > return true; > } > @@ -1829,7 +1830,7 @@ iomap_writepage_map(struct iomap_writepage_ctx *wpc, > count++; > } > if (count) > - wpc->ioend->io_folios++; > + wpc->nr_folios++; > > WARN_ON_ONCE(!wpc->ioend && !list_empty(&submit_list)); > WARN_ON_ONCE(!folio_test_locked(folio)); > diff --git a/include/linux/iomap.h b/include/linux/iomap.h > index 96dd0acbba44ac..b2a05dff914d0c 100644 > --- a/include/linux/iomap.h > +++ b/include/linux/iomap.h > @@ -293,7 +293,6 @@ struct iomap_ioend { > struct list_head io_list; /* next ioend in chain */ > u16 io_type; > u16 io_flags; /* IOMAP_F_* */ > - u32 io_folios; /* folios added to ioend */ > struct inode *io_inode; /* file being written to */ > size_t io_size; /* size of the extent */ > loff_t io_offset; /* offset in the file */ > @@ -329,6 +328,7 @@ struct iomap_writepage_ctx { > struct iomap iomap; > struct iomap_ioend *ioend; > const struct iomap_writeback_ops *ops; > + u32 nr_folios; /* folios added to the ioend */ > }; > > void iomap_finish_ioends(struct iomap_ioend *ioend, int error); > -- > 2.39.2 > >