mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 09:12:07 +00:00
test_maple_tree: add test for spanning store of entire range
Entire range store over an existing tree would cause an underflow in mas_spanning_store() when the tree is multiple levels. Add a testcase to ensure it doesn't happen again. Link: https://lkml.kernel.org/r/20220625003854.1230114-3-Liam.Howlett@oracle.com Fixes: 51282228cdd4 (lib/test_maple_tree: add testing for maple tree) Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
209e6c246b
commit
9400b59d2e
@ -35676,6 +35676,19 @@ static noinline void check_spanning_write(struct maple_tree *mt)
|
||||
mtree_unlock(mt);
|
||||
mtree_destroy(mt);
|
||||
|
||||
for (i = 1; i <= max; i++)
|
||||
mtree_test_store_range(mt, i * 10, i * 10 + 5, &i);
|
||||
|
||||
mtree_lock(mt);
|
||||
mas_set_range(&mas, 9, 50006); /* Will expand to 0 - ULONG_MAX */
|
||||
mas_store_gfp(&mas, NULL, GFP_KERNEL);
|
||||
mas_set(&mas, 1205);
|
||||
MT_BUG_ON(mt, mas_walk(&mas) != NULL);
|
||||
mtree_unlock(mt);
|
||||
mt_dump(mt);
|
||||
mt_validate(mt);
|
||||
mtree_destroy(mt);
|
||||
|
||||
/* Test spanning store that requires a right cousin rebalance */
|
||||
mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE);
|
||||
for (i = 0; i <= max; i++)
|
||||
|
Loading…
Reference in New Issue
Block a user