]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: Remove BUG_ON() from mas_topiary_range()
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 1 Sep 2022 01:10:02 +0000 (21:10 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 1 Sep 2022 21:35:27 +0000 (17:35 -0400)
In the even of trying to remove data from a leaf node by use of
mas_topiary_range(), simply log the issue and return.  This will be
quickly followed by a crash but logging and returning will increase the
probability of meaningful data.

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
lib/maple_tree.c

index 13116cd5c5b85771ecedae284948122d26033568..47e0540c9100b7dc40de98a01bde813f89a17cdc 100644 (file)
@@ -2311,7 +2311,9 @@ static inline void mas_topiary_range(struct ma_state *mas,
        void __rcu **slots;
        unsigned char offset;
 
-       MT_BUG_ON(mas->tree, mte_is_leaf(mas->node));
+       if (MT_WARN_ON(mas->tree, mte_is_leaf(mas->node)))
+               return;
+
        slots = ma_slots(mas_mn(mas), mte_node_type(mas->node));
        for (offset = start; offset <= end; offset++) {
                struct maple_enode *enode = mas_slot_locked(mas, slots, offset);