]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
maple_tree: simplify mas_push_node()
authorWei Yang <richard.weiyang@gmail.com>
Tue, 15 Oct 2024 12:07:46 +0000 (12:07 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 1 Nov 2024 04:29:09 +0000 (21:29 -0700)
When count is not 0, we know head is valid.  So we can put the assignment
in if (count) instead of checking the head pointer again.

Also count represents current total, we can assign the new total by
increasing the count by one.

Link: https://lkml.kernel.org/r/20241015120746.15850-4-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: Liam R. Howlett <Liam.Howlett@Oracle.com>
Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/maple_tree.c

index 1b80201865d8689808b488a01241c44246f41469..667120a445709afa64905a69023095ea0bd0ed7d 100644 (file)
@@ -1207,19 +1207,17 @@ static inline void mas_push_node(struct ma_state *mas, struct maple_node *used)
 
        reuse->request_count = 0;
        reuse->node_count = 0;
-       if (count && (head->node_count < MAPLE_ALLOC_SLOTS)) {
-               head->slot[head->node_count++] = reuse;
-               head->total++;
-               goto done;
-       }
-
-       reuse->total = 1;
-       if ((head) && !((unsigned long)head & 0x1)) {
+       if (count) {
+               if (head->node_count < MAPLE_ALLOC_SLOTS) {
+                       head->slot[head->node_count++] = reuse;
+                       head->total++;
+                       goto done;
+               }
                reuse->slot[0] = head;
                reuse->node_count = 1;
-               reuse->total += head->total;
        }
 
+       reuse->total = count + 1;
        mas->alloc = reuse;
 done:
        if (requested > 1)