test_maple_tree: add more testing for mas_empty_area()
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 7 Mar 2023 18:02:47 +0000 (13:02 -0500)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 24 Mar 2023 00:18:32 +0000 (17:18 -0700)
commit4bd6dded6318dc8e2514d74868c1f8fb38b61a60
tree5c1c8f0ddced677397fd4a60b23f4bbe15f867e0
parent0fa99fdfe1b38da396d0b2d1496a823bcd0ebea0
test_maple_tree: add more testing for mas_empty_area()

Test robust filling of an entire area of the tree, then test one beyond.
This is to test the walking back up the tree at the end of nodes and error
condition.  Test inspired by the reproducer code provided by Snild Dolkow.

The last test in the function tests for the case of a corrupted maple
state caused by the incorrect limits set during mas_skip_node().  There
needs to be a gap in the second last child and last child, but the search
must rule out the second last child's gap.  This would avoid correcting
the maple state to the correct max limit and return an error.

Link: https://lkml.kernel.org/r/20230307180247.2220303-3-Liam.Howlett@oracle.com
Cc: Snild Dolkow <snild@sony.com>
Link: https://lore.kernel.org/linux-mm/cb8dc31a-fef2-1d09-f133-e9f7b9f9e77a@sony.com/
Fixes: e15e06a83923 ("lib/test_maple_tree: add testing for maple tree")
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Peng Zhang <zhangpeng.00@bytedance.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/test_maple_tree.c