On Fri, Sep 15, 2023 at 02:40:07PM +0100, Matthew Wilcox wrote: > On Fri, Sep 15, 2023 at 09:51:23AM +0000, Daniel Gomez wrote: > > To make the code that clamps the folio order in the __filemap_get_folio > > routine reusable to others, move and merge it to the fgf_set_order > > new subroutine (mapping_size_order), so when mapping the size at a > > given index, the order calculated is already valid and ready to be > > used when order is retrieved from fgp_flags with FGF_GET_ORDER. > > > > Signed-off-by: Daniel Gomez <da.gomez@xxxxxxxxxxx> > > --- > > fs/iomap/buffered-io.c | 6 ++++-- > > include/linux/pagemap.h | 42 ++++++++++++++++++++++++++++++++++++----- > > mm/filemap.c | 8 -------- > > 3 files changed, 41 insertions(+), 15 deletions(-) > > That seems like a lot of extra code to add in order to avoid copying > six lines of code and one comment into the shmem code. > > It's not wrong, but it seems like a bad tradeoff to me. The suggestion to merge came from me, mostly based on later observations that in the future we may want to extend this with a min order to ensure the index is aligned the the order. This check would only be useful for buffred IO for iomap, readahead. It has me wondering if buffer-heads support for large order folios come around would we a similar check there? So Willy, you would know better if and when a shared piece of code would be best with all these things in mind. Luis