On Wed, 13 Dec 2023 13:03:29 -0800 Sidhartha Kumar <sidhartha.kumar@xxxxxxxxxx> wrote: > On 12/13/23 12:50 PM, Sidhartha Kumar wrote: > > mas_preallocate() defaults to requesting 1 node for preallocation and then > > ,depending on the type of store, will update the request variable. There > > isn't a check for a slot store type, so slot stores are preallocating the > > default 1 node. Slot stores do not require any additional nodes, so add a > > check for the slot store case that will bypass node_count_gfp(). Update > > the tests to reflect that slot stores do not require allocations. > > > > User visible effects of this bug include increased memory usage from the > > unneeded node that was allocated. > > > > Fixes: 0b8bb544b1a7 ("maple_tree: update mas_preallocate() testing") > > Cc: <stable@xxxxxxxxxxxxxxx> # 6.6+ > > Signed-off-by: Sidhartha Kumar <sidhartha.kumar@xxxxxxxxxx> > > --- > > v1->v2: > > fix coding style per Matthew and Andrew > > use wr_mas->node_end to fix build error > > > > When this is merged to mm-unstable could the following fixlet be applied to be > compatible with Liam's series[1]: > Yup, already on it. Liam's series is now in mm-stable so for now I'll leave a bisection hole. Maybe I'll fold it later if an mm-stable rebase/rebuild is needed, From: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Subject: lib/maple_tree.c: fix build error due to hotfix alteration Date: Wed Dec 13 12:59:49 PM PST 2023 Commit 0de56e38b307 ("maple_tree: use maple state end for write operations") was broken by a later patch "maple_tree: do not preallocate nodes for slot stores". But the later patch was scheduled ahead of 0de56e38b307, for 6.7-rc. This fixlet undoes the damage. Fixes: 0de56e38b307 ("maple_tree: use maple state end for write operations") Cc: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> Cc: Sidhartha Kumar <sidhartha.kumar@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- lib/maple_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/lib/maple_tree.c~lib-maple_treec-fix-build-error-due-to-hotfix-alteration +++ a/lib/maple_tree.c @@ -5477,7 +5477,7 @@ int mas_preallocate(struct ma_state *mas node_size = mas_wr_new_end(&wr_mas); /* Slot store, does not require additional nodes */ - if (node_size == wr_mas.node_end) { + if (node_size == mas->end) { /* reuse node */ if (!mt_in_rcu(mas->tree)) return 0; _