I noticed that Liam R. Howlett's v2 patch set[1] has been merged. Merging v3 will have conflicts, so I included the extra parts of v3 relative to v2 into my patch set. In this way, v3 can be ignored. I made some changes to [4/9] from Liam R. Howlett, because it was not fully fixed before, causing the test to fail. Refactored mtree_alloc_range/rrange() to fix bugs and improve maintainability. This makes the three functions mas_fill_gap(), mas_rev_alloc() and mas_alloc() no longer used. But I did not delete them, because maple tree is still under development. This refactoring is worth discussing. And I don't understand why these three functions are needed because there are functions similar to them. [1]: https://lore.kernel.org/lkml/20230421135559.2163923-1-Liam.Howlett@xxxxxxxxxx/ Liam R. Howlett (1): maple_tree: Update mtree_alloc_rrange() and mtree_alloc_range() testing Peng Zhang (8): maple_tree: Fix allocation when min is equal to max in mas_empty_area/_area_rev() maple_tree: Make maple state reusable after mas_empty_area() maple_tree: Modify the allocation method of mtree_alloc_range/rrange() maple_tree: Remove an if statement that cannot be true maple_tree: Remove a confusing check maple_tree: Delete redundant code in mas_next_node() maple_tree: Remove the redundant check of mas->offset in mas_empty_area/area_rev() maple_tree: Move declaration of mas_empty_area_rev() to a better place include/linux/maple_tree.h | 12 ++--- lib/maple_tree.c | 89 +++++++++++--------------------------- lib/test_maple_tree.c | 30 +++++++++---- 3 files changed, 53 insertions(+), 78 deletions(-) -- 2.20.1