]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: remove xfs_buf_get_maps
authorChristoph Hellwig <hch@lst.de>
Mon, 17 Mar 2025 05:48:33 +0000 (06:48 +0100)
committerCarlos Maiolino <cem@kernel.org>
Tue, 18 Mar 2025 13:47:45 +0000 (14:47 +0100)
xfs_buf_get_maps has a single caller, and can just be open coded there.
When doing that, stop handling the allocation failure as we always pass
__GFP_NOFAIL to the slab allocator, and use the proper kcalloc helper for
array allocations.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/xfs_buf.c

index f42f6e47f783b9b7b86e06415d80ce8d272a12c8..878dc0f108d16332e19579fc451c425c83733cf3 100644 (file)
@@ -88,26 +88,6 @@ xfs_buf_stale(
        spin_unlock(&bp->b_lock);
 }
 
-static int
-xfs_buf_get_maps(
-       struct xfs_buf          *bp,
-       int                     map_count)
-{
-       ASSERT(bp->b_maps == NULL);
-       bp->b_map_count = map_count;
-
-       if (map_count == 1) {
-               bp->b_maps = &bp->__b_map;
-               return 0;
-       }
-
-       bp->b_maps = kzalloc(map_count * sizeof(struct xfs_buf_map),
-                       GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);
-       if (!bp->b_maps)
-               return -ENOMEM;
-       return 0;
-}
-
 static void
 xfs_buf_free_maps(
        struct xfs_buf  *bp)
@@ -317,15 +297,14 @@ xfs_buf_alloc(
        bp->b_target = target;
        bp->b_mount = target->bt_mount;
        bp->b_flags = flags;
-
-       error = xfs_buf_get_maps(bp, nmaps);
-       if (error)  {
-               kmem_cache_free(xfs_buf_cache, bp);
-               return error;
-       }
-
        bp->b_rhash_key = map[0].bm_bn;
        bp->b_length = 0;
+       bp->b_map_count = nmaps;
+       if (nmaps == 1)
+               bp->b_maps = &bp->__b_map;
+       else
+               bp->b_maps = kcalloc(nmaps, sizeof(struct xfs_buf_map),
+                               GFP_KERNEL | __GFP_NOLOCKDEP | __GFP_NOFAIL);
        for (i = 0; i < nmaps; i++) {
                bp->b_maps[i].bm_bn = map[i].bm_bn;
                bp->b_maps[i].bm_len = map[i].bm_len;