From 208bd8e853dfdbf3de617bbe71af81201e882bf0 Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Thu, 3 Mar 2022 11:50:23 -0500 Subject: [PATCH] maple_tree: Fix mas_reuse_node() zeroing again. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index bb7fa9727378b..221f1c5b6ef7d 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3435,22 +3435,14 @@ static inline bool mas_reuse_node(struct ma_wr_state *wr_mas, if (mt_in_rcu(wr_mas->mas->tree)) return false; - mab_mas_cp(bn, 0, bn->b_end, wr_mas->mas, false); if (end > bn->b_end) { - char clear = mt_slots[wr_mas->type] - bn->b_end - 2; - - if (bn->pivot[bn->b_end] != wr_mas->mas->max) - clear++; - - /* Zero end of node. */ - if (clear > 0) { - memset(wr_mas->slots + bn->b_end+1, 0, + int clear = mt_slots[wr_mas->type] - bn->b_end; + memset(wr_mas->slots + bn->b_end, 0, + sizeof(void *) * clear--); + memset(wr_mas->pivots + bn->b_end, 0, sizeof(void *) * clear); - memset(wr_mas->pivots + bn->b_end+1, 0, - sizeof(unsigned long *) * clear); - } } - + mab_mas_cp(bn, 0, bn->b_end, wr_mas->mas, false); return true; } -- 2.50.1