maple_tree: total is not changed for nomem_one case
authorWei Yang <richard.weiyang@gmail.com>
Tue, 15 Oct 2024 12:07:45 +0000 (12:07 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 7 Nov 2024 04:11:14 +0000 (20:11 -0800)
If it jumps to nomem_one, the total allocated number is not changed.  So
we don't need to adjust it.

For the nomem_bulk case, we know there is a valid mas->alloc.  So we don't
need to do the check.

Link: https://lkml.kernel.org/r/20241015120746.15850-3-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 ee7922b..1b80201 100644 (file)
@@ -1297,10 +1297,9 @@ static inline void mas_alloc_nodes(struct ma_state *mas, gfp_t gfp)
 nomem_bulk:
        /* Clean up potential freed allocations on bulk failure */
        memset(slots, 0, max_req * sizeof(unsigned long));
+       mas->alloc->total = allocated;
 nomem_one:
        mas_set_alloc_req(mas, requested);
-       if (mas->alloc && !(((unsigned long)mas->alloc & 0x1)))
-               mas->alloc->total = allocated;
        mas_set_err(mas, -ENOMEM);
 }