]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: Optimize __mas_next a bit, I hope
authorLiam R. Howlett <Liam.Howlett@Oracle.com>
Wed, 4 Nov 2020 02:33:58 +0000 (21:33 -0500)
committerLiam R. Howlett <Liam.Howlett@Oracle.com>
Wed, 4 Nov 2020 02:33:58 +0000 (21:33 -0500)
Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
lib/maple_tree.c

index 008d676781543280ff5c89a8c62b7fa47c68b969..3981ec55a0091dd026490ac71a7fa4461c9d21fe 100644 (file)
@@ -3720,24 +3720,23 @@ static inline void *__mas_next(struct ma_state *mas, unsigned long limit,
                unsigned long *range_start)
 {
        void *entry = NULL;
+       struct maple_enode *prev_node;
        unsigned long index = mas->index;
-       unsigned char slot;
 
        mas->offset++;
 retry:
        *range_start = mas->last + 1;
 
        while (!mas_is_none(mas)) {
-               struct maple_enode *last_node = mas->node;
 
-               slot = mas->offset;
-               if (slot >= mt_slot_count(mas->node))
+               if (mas->offset >= mt_slot_count(mas->node))
                        goto next_node;
 
                if (!mte_is_leaf(mas->node) || !mas->offset) {
+                       prev_node = mas->node;
                        *range_start = mas_first_entry(mas, limit);
                        if (mas_is_none(mas)) {
-                               mas->node = last_node;
+                               mas->node = prev_node;
                                goto next_node;
                        }
                }