summaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_ag.c
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2023-02-13 09:14:53 +1100
committerDave Chinner <dchinner@redhat.com>2023-02-13 09:14:53 +1100
commit74c36a8689d3d8ca9d9e96759c9bbf337e049097 (patch)
treeb6ac747bad431ddfac5bec8eeccc3225cd04a62e /fs/xfs/libxfs/xfs_ag.c
parent4811c933ea1ab7de86507dc9f7c9d3d9d71cafb5 (diff)
downloadlinux-stable-74c36a8689d3d8ca9d9e96759c9bbf337e049097.tar.gz
linux-stable-74c36a8689d3d8ca9d9e96759c9bbf337e049097.tar.bz2
linux-stable-74c36a8689d3d8ca9d9e96759c9bbf337e049097.zip
xfs: use xfs_alloc_vextent_this_ag() where appropriate
Change obvious callers of single AG allocation to use xfs_alloc_vextent_this_ag(). Drive the per-ag grabbing out to the callers, too, so that callers with active references don't need to do new lookups just for an allocation in a context that already has a perag reference. The only remaining caller that does single AG allocation through xfs_alloc_vextent() is xfs_bmap_btalloc() with XFS_ALLOCTYPE_NEAR_BNO. That is going to need more untangling before it can be converted cleanly. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Diffstat (limited to 'fs/xfs/libxfs/xfs_ag.c')
-rw-r--r--fs/xfs/libxfs/xfs_ag.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/xfs/libxfs/xfs_ag.c b/fs/xfs/libxfs/xfs_ag.c
index a3bdcde95845..053d77a283f7 100644
--- a/fs/xfs/libxfs/xfs_ag.c
+++ b/fs/xfs/libxfs/xfs_ag.c
@@ -887,6 +887,7 @@ xfs_ag_shrink_space(
struct xfs_alloc_arg args = {
.tp = *tpp,
.mp = mp,
+ .pag = pag,
.type = XFS_ALLOCTYPE_THIS_BNO,
.minlen = delta,
.maxlen = delta,
@@ -938,7 +939,7 @@ xfs_ag_shrink_space(
return error;
/* internal log shouldn't also show up in the free space btrees */
- error = xfs_alloc_vextent(&args);
+ error = xfs_alloc_vextent_this_ag(&args);
if (!error && args.agbno == NULLAGBLOCK)
error = -ENOSPC;