[PATCH 0/9] fix, rework and clean up for maple tree

From: Peng Zhang
Date: Tue Apr 25 2023 - 07:05:59 EST


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