| From: Wei Yang <richard.weiyang@gmail.com> |
| Subject: maple_tree: only root node could be deficient |
| Date: Wed, 13 Nov 2024 03:16:16 +0000 |
| |
| Each level's rightmost node should have (max == ULONG_MAX). This means |
| current validation skips the right most node on each level. |
| |
| Only the root node may be below the minimum data threshold. |
| |
| Link: https://lkml.kernel.org/r/20241113031616.10530-4-richard.weiyang@gmail.com |
| Signed-off-by: Wei Yang <richard.weiyang@gmail.com> |
| Reviewed-by: Liam R. Howlett <Liam.Howlett@Oracle.com> |
| Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com> |
| Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| lib/maple_tree.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/lib/maple_tree.c~maple_tree-only-root-node-could-be-deficient |
| +++ a/lib/maple_tree.c |
| @@ -7556,7 +7556,7 @@ void mt_validate(struct maple_tree *mt) |
| MAS_WARN_ON(&mas, mte_dead_node(mas.node)); |
| end = mas_data_end(&mas); |
| if (MAS_WARN_ON(&mas, (end < mt_min_slot_count(mas.node)) && |
| - (mas.max != ULONG_MAX))) { |
| + (!mte_is_root(mas.node)))) { |
| pr_err("Invalid size %u of " PTR_FMT "\n", |
| end, mas_mn(&mas)); |
| } |
| _ |