]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
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>
Fri, 1 Nov 2024 04:29:09 +0000 (21:29 -0700)
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 ee7922b19f0a23d5df30cf7a87541105c69056eb..1b80201865d8689808b488a01241c44246f41469 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);
 }