Re: [RFC 02/23] pagemap: use mapping_min_order in fgf_set_order()

From: Matthew Wilcox
Date: Fri Sep 15 2023 - 14:56:30 EST


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));