]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: mas_parent_gap no longer updates limits
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Wed, 23 Sep 2020 02:42:26 +0000 (22:42 -0400)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Fri, 30 Oct 2020 19:12:12 +0000 (15:12 -0400)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
lib/maple_tree.c

index 1d89ea6f0c295845f5d6c7485d60dcd8221f31ec..feb164fc770bd52e71bb1edd6025375302d0d5bb 100644 (file)
@@ -1142,16 +1142,17 @@ static inline void mas_parent_gap(struct ma_state *mas, unsigned char slot,
 
 ascend:
        /* Go to the parent node. */
-       mas_ascend(&gaps);
+       gaps.node = mt_mk_node(mte_parent(gaps.node),
+                       mas_parent_enum(&gaps, gaps.node));
        old_max_gap = mas_max_gap(&gaps);
        mte_set_gap(gaps.node, slot, new);
-       new = mas_max_gap(&gaps);
+       if (mte_is_root(gaps.node))
+               return;
 
+       new = mas_max_gap(&gaps);
        if (new == old_max_gap)
                return;
 
-       if (mte_is_root(gaps.node))
-               return;
 
        slot = mte_parent_slot(gaps.node);
        goto ascend;