]> Git Repo - J-linux.git/commitdiff
xfs: get rid of xfs_ag_resv_rmapbt_alloc
authorLong Li <[email protected]>
Wed, 3 Jul 2024 06:42:26 +0000 (14:42 +0800)
committerChandan Babu R <[email protected]>
Thu, 4 Jul 2024 09:06:13 +0000 (14:36 +0530)
The pag in xfs_ag_resv_rmapbt_alloc() is already held when the struct
xfs_btree_cur is initialized in xfs_rmapbt_init_cursor(), so there is no
need to get pag again.

On the other hand, in xfs_rmapbt_free_block(), the similar function
xfs_ag_resv_rmapbt_free() was removed in commit 92a005448f6f ("xfs: get
rid of unnecessary xfs_perag_{get,put} pairs"), xfs_ag_resv_rmapbt_alloc()
was left because scrub used it, but now scrub has removed it. Therefore,
we could get rid of xfs_ag_resv_rmapbt_alloc() just like the rmap free
block, make the code cleaner.

Signed-off-by: Long Li <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Reviewed-by: Darrick J. Wong <[email protected]>
Signed-off-by: Chandan Babu R <[email protected]>
fs/xfs/libxfs/xfs_ag_resv.h
fs/xfs/libxfs/xfs_rmap_btree.c

index ff20ed93de77243610125edd75b8d69e4f101e20..f247eeff7358c492020c7ee6044532eea9ae315d 100644 (file)
@@ -33,23 +33,4 @@ xfs_perag_resv(
        }
 }
 
-/*
- * RMAPBT reservation accounting wrappers. Since rmapbt blocks are sourced from
- * the AGFL, they are allocated one at a time and the reservation updates don't
- * require a transaction.
- */
-static inline void
-xfs_ag_resv_rmapbt_alloc(
-       struct xfs_mount        *mp,
-       xfs_agnumber_t          agno)
-{
-       struct xfs_alloc_arg    args = { NULL };
-       struct xfs_perag        *pag;
-
-       args.len = 1;
-       pag = xfs_perag_get(mp, agno);
-       xfs_ag_resv_alloc_extent(pag, XFS_AG_RESV_RMAPBT, &args);
-       xfs_perag_put(pag);
-}
-
 #endif /* __XFS_AG_RESV_H__ */
index 9e759efa81ccd4b394e23abba9876a1deb9cd6e9..56fd6c4bd8b41dc2ca5d017605bda1b82f93c268 100644 (file)
@@ -88,6 +88,7 @@ xfs_rmapbt_alloc_block(
        struct xfs_buf          *agbp = cur->bc_ag.agbp;
        struct xfs_agf          *agf = agbp->b_addr;
        struct xfs_perag        *pag = cur->bc_ag.pag;
+       struct xfs_alloc_arg    args = { .len = 1 };
        int                     error;
        xfs_agblock_t           bno;
 
@@ -107,7 +108,11 @@ xfs_rmapbt_alloc_block(
        be32_add_cpu(&agf->agf_rmap_blocks, 1);
        xfs_alloc_log_agf(cur->bc_tp, agbp, XFS_AGF_RMAP_BLOCKS);
 
-       xfs_ag_resv_rmapbt_alloc(cur->bc_mp, pag->pag_agno);
+       /*
+        * Since rmapbt blocks are sourced from the AGFL, they are allocated one
+        * at a time and the reservation updates don't require a transaction.
+        */
+       xfs_ag_resv_alloc_extent(pag, XFS_AG_RESV_RMAPBT, &args);
 
        *stat = 1;
        return 0;
This page took 0.069099 seconds and 4 git commands to generate.