This series modifies the store paths in mas_store_gfp() and mas_erase() to use the newly refined preallocation calculation before their calls to mas_wr_store_entry(). This will avoid having to do worst case calculations. Patch 1 abstracts the calculation outside of mas_preallocate() so it can be used externally. Patch 2 modifies the write path in mas_store_gfp() to use preallocations and patch 3 does this in mas_erase(). The motivation for this series is part of the Maple Tree work list[1]. ========== TESTING ============== Testing was done with the maple tree test suite. maple_tree: 570172962 of 570172962 tests passed rebased on mm-unstable 10/09/23 [1]: https://lore.kernel.org/linux-mm/20230912172845.o54szwf33hc6p7ee@revolver/T/ Sidhartha Kumar (3): maple_tree: introduce mas_prealloc_calc() maple_tree: use preallocations in mas_store_gfp() maple_tree: use preallocations in mas_erase() lib/maple_tree.c | 128 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 88 insertions(+), 40 deletions(-) -- 2.41.0