From: Liam R. Howlett Date: Thu, 3 Mar 2022 16:50:23 +0000 (-0500) Subject: maple_tree: Fix mas_reuse_node() zeroing again. X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=208bd8e853dfdbf3de617bbe71af81201e882bf0;p=users%2Fjedix%2Flinux-maple.git maple_tree: Fix mas_reuse_node() zeroing again. Signed-off-by: Liam R. Howlett --- diff --git a/lib/maple_tree.c b/lib/maple_tree.c index bb7fa9727378..221f1c5b6ef7 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; }