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

Message ID 20230425110511.11680-1-zhangpeng.00@bytedance.com
Headers
Series fix, rework and clean up for maple tree |

Message

Peng Zhang April 25, 2023, 11:05 a.m. UTC
  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@oracle.com/

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(-)