mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
xfs: remove xfs_buf_get_maps
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>
This commit is contained in:
parent
1ec1207722
commit
5abea7094b
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user