xfs: kill xfs_ialloc_pagi_init()
authorDave Chinner <dchinner@redhat.com>
Thu, 7 Jul 2022 09:07:16 +0000 (19:07 +1000)
committerDave Chinner <david@fromorbit.com>
Thu, 7 Jul 2022 09:07:16 +0000 (19:07 +1000)
This is just a basic wrapper around xfs_ialloc_read_agi(), which can
be entirely handled by xfs_ialloc_read_agi() by passing a NULL
agibpp....

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/libxfs/xfs_ag.c
fs/xfs/libxfs/xfs_ialloc.c
fs/xfs/libxfs/xfs_ialloc.h

index 4bb316d..c203dc8 100644 (file)
@@ -128,9 +128,10 @@ xfs_initialize_perag_data(
                if (error)
                        return error;
 
-               error = xfs_ialloc_pagi_init(mp, NULL, index);
+               error = xfs_ialloc_read_agi(mp, NULL, index, NULL);
                if (error)
                        return error;
+
                pag = xfs_perag_get(mp, index);
                ifree += pag->pagi_freecount;
                ialloc += pag->pagi_count;
index bf2f4bc..cefac2a 100644 (file)
@@ -1610,7 +1610,7 @@ xfs_dialloc_good_ag(
                return false;
 
        if (!pag->pagi_init) {
-               error = xfs_ialloc_pagi_init(mp, tp, pag->pag_agno);
+               error = xfs_ialloc_read_agi(mp, tp, pag->pag_agno, NULL);
                if (error)
                        return false;
        }
@@ -2593,25 +2593,30 @@ xfs_read_agi(
        return 0;
 }
 
+/*
+ * Read in the agi and initialise the per-ag data. If the caller supplies a
+ * @agibpp, return the locked AGI buffer to them, otherwise release it.
+ */
 int
 xfs_ialloc_read_agi(
        struct xfs_mount        *mp,    /* file system mount structure */
        struct xfs_trans        *tp,    /* transaction pointer */
        xfs_agnumber_t          agno,   /* allocation group number */
-       struct xfs_buf          **bpp)  /* allocation group hdr buf */
+       struct xfs_buf          **agibpp)
 {
+       struct xfs_buf          *agibp;
        struct xfs_agi          *agi;   /* allocation group header */
        struct xfs_perag        *pag;   /* per allocation group data */
        int                     error;
 
        trace_xfs_ialloc_read_agi(mp, agno);
 
-       error = xfs_read_agi(mp, tp, agno, bpp);
+       error = xfs_read_agi(mp, tp, agno, &agibp);
        if (error)
                return error;
 
-       agi = (*bpp)->b_addr;
-       pag = (*bpp)->b_pag;
+       agi = agibp->b_addr;
+       pag = agibp->b_pag;
        if (!pag->pagi_init) {
                pag->pagi_freecount = be32_to_cpu(agi->agi_freecount);
                pag->pagi_count = be32_to_cpu(agi->agi_count);
@@ -2624,26 +2629,10 @@ xfs_ialloc_read_agi(
         */
        ASSERT(pag->pagi_freecount == be32_to_cpu(agi->agi_freecount) ||
                xfs_is_shutdown(mp));
-       return 0;
-}
-
-/*
- * Read in the agi to initialise the per-ag data in the mount structure
- */
-int
-xfs_ialloc_pagi_init(
-       xfs_mount_t     *mp,            /* file system mount structure */
-       xfs_trans_t     *tp,            /* transaction pointer */
-       xfs_agnumber_t  agno)           /* allocation group number */
-{
-       struct xfs_buf  *bp = NULL;
-       int             error;
-
-       error = xfs_ialloc_read_agi(mp, tp, agno, &bp);
-       if (error)
-               return error;
-       if (bp)
-               xfs_trans_brelse(tp, bp);
+       if (agibpp)
+               *agibpp = agibp;
+       else
+               xfs_trans_brelse(tp, agibp);
        return 0;
 }
 
index a7705b6..1ff42bf 100644 (file)
@@ -73,16 +73,6 @@ xfs_ialloc_read_agi(
        struct xfs_buf  **bpp);         /* allocation group hdr buf */
 
 /*
- * Read in the allocation group header to initialise the per-ag data
- * in the mount structure
- */
-int
-xfs_ialloc_pagi_init(
-       struct xfs_mount *mp,           /* file system mount structure */
-       struct xfs_trans *tp,           /* transaction pointer */
-        xfs_agnumber_t  agno);         /* allocation group number */
-
-/*
  * Lookup a record by ino in the btree given by cur.
  */
 int xfs_inobt_lookup(struct xfs_btree_cur *cur, xfs_agino_t ino,