On Fri, Sep 15, 2023 at 08:38:27PM +0200, Pankaj Raghav wrote: > From: Pankaj Raghav <p.raghav@xxxxxxxxxxx> > > fgf_set_order() encodes optimal order in fgp flags. Set it to at least > mapping_min_order from the page cache. Default to the old behaviour if > min_order is not set. Why not simply: +++ b/mm/filemap.c @@ -1906,9 +1906,12 @@ struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, folio_wait_stable(folio); no_page: if (!folio && (fgp_flags & FGP_CREAT)) { - unsigned order = FGF_GET_ORDER(fgp_flags); + unsigned order; int err; + order = min(mapping_min_folio_order(mapping), + FGF_GET_ORDER(fgp_flags));