From cb73f18ad3815d1583092e439f42a4a0da088db8 Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Tue, 6 May 2025 20:13:25 -0400 Subject: [PATCH] spanning store mess Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 64ae95b02c084..9482a0e413733 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4876,13 +4876,15 @@ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) sd.split = mt_slots[src.type]; rebalance_reduce(&left, &src, &r_src, &part, &sd); if (ma_is_root(parent.node)) { + sd.new_end = r_parent.offset - parent.offset; + sd.new_end = parent.end - sd.new_end; + printk("sd.new_end is %u\n", sd.new_end); /* This is wrong... * We have parent.end != 1, but we have * replaced all the data.. * */ - if (parent.end != 1) + if (sd.new_end > 1) break; - src.enode = mas->node; left.node->parent = mas_mn(mas)->parent; mas->node = left.enode; -- 2.50.1