From: Pankaj Raghav <p.raghav@xxxxxxxxxxx>Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
filemap_create_folio() and do_read_cache_folio() were always allocating
folio of order 0. __filemap_get_folio was trying to allocate higher
order folios when fgp_flags had higher order hint set but it will default
to order 0 folio if higher order memory allocation fails.
Supporting mapping_min_order implies that we guarantee each folio in the
page cache has at least an order of mapping_min_order. When adding new
folios to the page cache we must also ensure the index used is aligned to
the mapping_min_order as the page cache requires the index to be aligned
to the order of the folio.
Co-developed-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
Signed-off-by: Pankaj Raghav <p.raghav@xxxxxxxxxxx>
---
include/linux/pagemap.h | 20 ++++++++++++++++++++
mm/filemap.c | 26 ++++++++++++++++++--------
2 files changed, 38 insertions(+), 8 deletions(-)