]> www.infradead.org Git - users/hch/xfs.git/commitdiff
xfs: store a generic xfs_group pointer in xfs_getfsmap_info
authorChristoph Hellwig <hch@lst.de>
Thu, 19 Sep 2024 06:45:52 +0000 (08:45 +0200)
committerChristoph Hellwig <hch@lst.de>
Sun, 22 Sep 2024 05:51:02 +0000 (07:51 +0200)
Replace the pag and rtg pointers with a generic group pointer.

Signed-off-by: Christoph Hellwig <hch@lst.de>
fs/xfs/xfs_fsmap.c

index 5d5e54a16f23c82876074dbd2f67fc775934f1ac..c59ac36e76ab0ef1181eb29903c5094d1c001b9f 100644 (file)
@@ -158,7 +158,7 @@ struct xfs_getfsmap_info {
        struct xfs_fsmap_head   *head;
        struct fsmap            *fsmap_recs;    /* mapping records */
        struct xfs_buf          *agf_bp;        /* AGF, for refcount queries */
-       struct xfs_perag        *pag;           /* AG info, if applicable */
+       struct xfs_group        *group;         /* group info, if applicable */
        xfs_daddr_t             next_daddr;     /* next daddr we expect */
        /* daddr of low fsmap key when we're using the rtbitmap */
        xfs_daddr_t             low_daddr;
@@ -216,12 +216,13 @@ xfs_getfsmap_is_shared(
        if (!xfs_has_reflink(mp))
                return 0;
        /* rt files will have no perag structure */
-       if (!info->pag)
+       if (!info->group)
                return 0;
 
        /* Are there any shared blocks here? */
        flen = 0;
-       cur = xfs_refcountbt_init_cursor(mp, tp, info->agf_bp, info->pag);
+       cur = xfs_refcountbt_init_cursor(mp, tp, info->agf_bp,
+                       to_perag(info->group));
 
        error = xfs_refcount_find_shared(cur, rec->rm_startblock,
                        rec->rm_blockcount, &fbno, &flen, false);
@@ -353,7 +354,8 @@ xfs_getfsmap_helper(
                return -ECANCELED;
 
        trace_xfs_fsmap_mapping(mp, info->dev,
-                       info->pag ? pag_agno(info->pag) : NULLAGNUMBER, rec);
+                       info->group ? info->group->xg_index : NULLAGNUMBER,
+                       rec);
 
        fmr.fmr_device = info->dev;
        fmr.fmr_physical = rec_daddr;
@@ -519,7 +521,7 @@ __xfs_getfsmap_datadev(
                 * Set the AG high key from the fsmap high key if this
                 * is the last AG that we're querying.
                 */
-               info->pag = pag;
+               info->group = &pag->pag_group;
                if (pag_agno(pag) == end_ag) {
                        info->high.rm_startblock = XFS_FSB_TO_AGBNO(mp,
                                        end_fsb);
@@ -569,7 +571,7 @@ __xfs_getfsmap_datadev(
                        if (error)
                                break;
                }
-               info->pag = NULL;
+               info->group = NULL;
        }
 
        if (bt_cur)
@@ -579,9 +581,9 @@ __xfs_getfsmap_datadev(
                xfs_trans_brelse(tp, info->agf_bp);
                info->agf_bp = NULL;
        }
-       if (info->pag) {
-               xfs_perag_rele(info->pag);
-               info->pag = NULL;
+       if (info->group) {
+               xfs_perag_rele(pag);
+               info->group = NULL;
        } else if (pag) {
                /* loop termination case */
                xfs_perag_rele(pag);
@@ -604,7 +606,7 @@ xfs_getfsmap_datadev_rmapbt_query(
 
        /* Allocate cursor for this AG and query_range it. */
        *curpp = xfs_rmapbt_init_cursor(tp->t_mountp, tp, info->agf_bp,
-                       info->pag);
+                       to_perag(info->group));
        return xfs_rmap_query_range(*curpp, &info->low, &info->high,
                        xfs_getfsmap_datadev_helper, info);
 }
@@ -637,7 +639,7 @@ xfs_getfsmap_datadev_bnobt_query(
 
        /* Allocate cursor for this AG and query_range it. */
        *curpp = xfs_bnobt_init_cursor(tp->t_mountp, tp, info->agf_bp,
-                       info->pag);
+                       to_perag(info->group));
        key->ar_startblock = info->low.rm_startblock;
        key[1].ar_startblock = info->high.rm_startblock;
        return xfs_alloc_query_range(*curpp, key, &key[1],
@@ -997,7 +999,7 @@ xfs_getfsmap(
 
                info.dev = handlers[i].dev;
                info.last = false;
-               info.pag = NULL;
+               info.group = NULL;
                info.low_daddr = XFS_BUF_DADDR_NULL;
                info.low.rm_blockcount = 0;
                error = handlers[i].fn(tp, dkeys, &info);