mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-03 19:55:31 +00:00
maple_tree: update mt_validate()
Instead of using mas_first_entry() to find the leftmost leaf, use a simple loop instead. Remove an unneeded check for root node. To make the error message more accurate, check pivots first and then slots, because checking slots depend on the node limit pivot to break the loop. Link: https://lkml.kernel.org/r/20230711035444.526-7-zhangpeng.00@bytedance.com Signed-off-by: Peng Zhang <zhangpeng.00@bytedance.com> Tested-by: Geert Uytterhoeven <geert@linux-m68k.org> Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
33af39d024
commit
a489539e33
@ -7244,21 +7244,20 @@ void mt_validate(struct maple_tree *mt)
|
||||
if (!mas_searchable(&mas))
|
||||
goto done;
|
||||
|
||||
mas_first_entry(&mas, mas_mn(&mas), ULONG_MAX, mte_node_type(mas.node));
|
||||
while (!mte_is_leaf(mas.node))
|
||||
mas_descend(&mas);
|
||||
|
||||
while (!mas_is_none(&mas)) {
|
||||
MAS_WARN_ON(&mas, mte_dead_node(mas.node));
|
||||
if (!mte_is_root(mas.node)) {
|
||||
end = mas_data_end(&mas);
|
||||
if (MAS_WARN_ON(&mas,
|
||||
(end < mt_min_slot_count(mas.node)) &&
|
||||
(mas.max != ULONG_MAX))) {
|
||||
pr_err("Invalid size %u of %p\n", end,
|
||||
mas_mn(&mas));
|
||||
}
|
||||
end = mas_data_end(&mas);
|
||||
if (MAS_WARN_ON(&mas, (end < mt_min_slot_count(mas.node)) &&
|
||||
(mas.max != ULONG_MAX))) {
|
||||
pr_err("Invalid size %u of %p\n", end, mas_mn(&mas));
|
||||
}
|
||||
|
||||
mas_validate_parent_slot(&mas);
|
||||
mas_validate_child_slot(&mas);
|
||||
mas_validate_limits(&mas);
|
||||
mas_validate_child_slot(&mas);
|
||||
if (mt_is_alloc(mt))
|
||||
mas_validate_gaps(&mas);
|
||||
mas_dfs_postorder(&mas, ULONG_MAX);
|
||||
|
Loading…
Reference in New Issue
Block a user