From: Christoph Hellwig Date: Wed, 2 Oct 2024 01:16:56 +0000 (-0700) Subject: xfs: pass the fsbno to xfs_perag_intent_get X-Git-Tag: v6.11.0~42 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c4bef0ef27b413df37e75916f8e741c2cd587c2b;p=thirdparty%2Fxfsprogs-dev.git xfs: pass the fsbno to xfs_perag_intent_get Source kernel commit: 62d597a197e390a89eadff60b98231e91b32ab83 All callers of xfs_perag_intent_get have a fsbno and need boilerplate code to turn that into an agno. Just pass the fsbno to xfs_perag_intent_get and look up the agno there. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong --- diff --git a/include/xfs_mount.h b/include/xfs_mount.h index 4492a2f2..a60474a8 100644 --- a/include/xfs_mount.h +++ b/include/xfs_mount.h @@ -298,7 +298,8 @@ struct xfs_defer_drain { /* empty */ }; #define xfs_defer_drain_init(dr) ((void)0) #define xfs_defer_drain_free(dr) ((void)0) -#define xfs_perag_intent_get(mp, agno) xfs_perag_get((mp), (agno)) +#define xfs_perag_intent_get(mp, agno) \ + xfs_perag_get((mp), XFS_FSB_TO_AGNO((mp), (agno))) #define xfs_perag_intent_put(pag) xfs_perag_put(pag) static inline void xfs_perag_intent_hold(struct xfs_perag *pag) {} diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c index 77a368e6..fb40a662 100644 --- a/libxfs/defer_item.c +++ b/libxfs/defer_item.c @@ -79,10 +79,7 @@ xfs_extent_free_get_group( struct xfs_mount *mp, struct xfs_extent_free_item *xefi) { - xfs_agnumber_t agno; - - agno = XFS_FSB_TO_AGNO(mp, xefi->xefi_startblock); - xefi->xefi_pag = xfs_perag_intent_get(mp, agno); + xefi->xefi_pag = xfs_perag_intent_get(mp, xefi->xefi_startblock); } /* Release an active AG ref after some freeing work. */ @@ -256,10 +253,7 @@ xfs_rmap_update_get_group( struct xfs_mount *mp, struct xfs_rmap_intent *ri) { - xfs_agnumber_t agno; - - agno = XFS_FSB_TO_AGNO(mp, ri->ri_bmap.br_startblock); - ri->ri_pag = xfs_perag_intent_get(mp, agno); + ri->ri_pag = xfs_perag_intent_get(mp, ri->ri_bmap.br_startblock); } /* Release an active AG ref after finishing rmapping work. */ @@ -369,10 +363,7 @@ xfs_refcount_update_get_group( struct xfs_mount *mp, struct xfs_refcount_intent *ri) { - xfs_agnumber_t agno; - - agno = XFS_FSB_TO_AGNO(mp, ri->ri_startblock); - ri->ri_pag = xfs_perag_intent_get(mp, agno); + ri->ri_pag = xfs_perag_intent_get(mp, ri->ri_startblock); } /* Release an active AG ref after finishing refcounting work. */ @@ -490,13 +481,9 @@ xfs_bmap_update_get_group( struct xfs_mount *mp, struct xfs_bmap_intent *bi) { - xfs_agnumber_t agno; - if (xfs_ifork_is_realtime(bi->bi_owner, bi->bi_whichfork)) return; - agno = XFS_FSB_TO_AGNO(mp, bi->bi_bmap.br_startblock); - /* * Bump the intent count on behalf of the deferred rmap and refcount * intent items that that we can queue when we finish this bmap work. @@ -504,7 +491,7 @@ xfs_bmap_update_get_group( * intent drops the intent count, ensuring that the intent count * remains nonzero across the transaction roll. */ - bi->bi_pag = xfs_perag_intent_get(mp, agno); + bi->bi_pag = xfs_perag_intent_get(mp, bi->bi_bmap.br_startblock); } /* Add this deferred BUI to the transaction. */