struct address_space *mapping, bool uniform_split)
{
bool is_anon = folio_test_anon(folio);
- int order = folio_order(folio);
- int start_order = uniform_split ? new_order : order - 1;
+ int old_order = folio_order(folio);
int split_order;
folio_clear_has_hwpoisoned(folio);
* split to new_order one order at a time. For uniform split,
* folio is split to new_order directly.
*/
- for (split_order = start_order;
+ for (split_order = uniform_split ? new_order : old_order - 1;
split_order >= new_order;
split_order--) {
- int old_order = folio_order(folio);
int new_folios = 1UL << (old_order - split_order);
/* order-1 anonymous folio is not supported */
mod_mthp_stat(split_order, MTHP_STAT_NR_ANON, new_folios);
}
folio = page_folio(split_at);
+ old_order = split_order;
}
return 0;