From: Liam R. Howlett Date: Wed, 17 Sep 2025 20:11:02 +0000 (-0400) Subject: fix cp_leaf_init and r_wr_mas.end_piv on spanning store X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=38bd692811b43dd3ea74eac0691cebd1b30c2dc1;p=users%2Fjedix%2Flinux-maple.git fix cp_leaf_init and r_wr_mas.end_piv on spanning store Signed-off-by: Liam R. Howlett --- diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 295fee1456ea..3cecf62c8ed7 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3051,14 +3051,14 @@ static inline void cp_leaf_init(struct maple_copy *cp, else cp->gap[end] = mas->last - mas->index + 1; - if (r_wr_mas->r_max > mas->last) { + if (r_wr_mas->end_piv > mas->last) { end++; cp->slot[end] = r_wr_mas->slots[r_wr_mas->offset_end]; - cp->pivot[end] = r_wr_mas->r_max; + cp->pivot[end] = r_wr_mas->end_piv; if (r_wr_mas->content) cp->gap[end] = 0; else - cp->gap[end] = r_wr_mas->r_max - mas->last + 1; + cp->gap[end] = r_wr_mas->end_piv - mas->last + 1; } cp->min = l_wr_mas->r_min; @@ -4234,6 +4234,7 @@ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) r_mas.index = r_mas.last; mas_wr_walk_index(&r_wr_mas); r_mas.last = r_mas.index = mas->last; + r_wr_mas.end_piv = r_wr_mas.r_max; BUG_ON(!r_mas.end); /* Set up left side. */