xfs: add some rtgroup inode helpers
authorDarrick J. Wong <djwong@kernel.org>
Fri, 22 Nov 2024 20:33:17 +0000 (12:33 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Mon, 23 Dec 2024 21:06:03 +0000 (13:06 -0800)
Create some simple helpers to reduce the amount of typing whenever we
access rtgroup inodes.  Conversion was done with this spatch and some
minor reformatting:

@@
expression rtg;
@@

- rtg->rtg_inodes[XFS_RTGI_BITMAP]
+ rtg_bitmap(rtg)

@@
expression rtg;
@@

- rtg->rtg_inodes[XFS_RTGI_SUMMARY]
+ rtg_summary(rtg)

and the CLI command:

$ spatch --sp-file /tmp/moo.cocci --dir fs/xfs/ --use-gitgrep --in-place

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_rtbitmap.c
fs/xfs/libxfs/xfs_rtgroup.c
fs/xfs/libxfs/xfs_rtgroup.h
fs/xfs/scrub/rtbitmap.c
fs/xfs/scrub/rtsummary.c
fs/xfs/xfs_qm.c
fs/xfs/xfs_rtalloc.c

index 4ddfb7e395b38af2d3ee8f9de109053183c8903a..770adf60dd739226f8486bba3301e7aed92509e7 100644 (file)
@@ -1055,7 +1055,7 @@ xfs_rtfree_extent(
        xfs_rtxlen_t            len)    /* length of extent freed */
 {
        struct xfs_mount        *mp = tp->t_mountp;
-       struct xfs_inode        *rbmip = rtg->rtg_inodes[XFS_RTGI_BITMAP];
+       struct xfs_inode        *rbmip = rtg_bitmap(rtg);
        struct xfs_rtalloc_args args = {
                .mp             = mp,
                .tp             = tp,
index 4f3bfc884aff29ab9c4627abfc565681233b1bcc..a79b734e70440dc3b58f8eb4b6574b7103632131 100644 (file)
@@ -197,10 +197,10 @@ xfs_rtgroup_lock(
                 * Lock both realtime free space metadata inodes for a freespace
                 * update.
                 */
-               xfs_ilock(rtg->rtg_inodes[XFS_RTGI_BITMAP], XFS_ILOCK_EXCL);
-               xfs_ilock(rtg->rtg_inodes[XFS_RTGI_SUMMARY], XFS_ILOCK_EXCL);
+               xfs_ilock(rtg_bitmap(rtg), XFS_ILOCK_EXCL);
+               xfs_ilock(rtg_summary(rtg), XFS_ILOCK_EXCL);
        } else if (rtglock_flags & XFS_RTGLOCK_BITMAP_SHARED) {
-               xfs_ilock(rtg->rtg_inodes[XFS_RTGI_BITMAP], XFS_ILOCK_SHARED);
+               xfs_ilock(rtg_bitmap(rtg), XFS_ILOCK_SHARED);
        }
 }
 
@@ -215,10 +215,10 @@ xfs_rtgroup_unlock(
               !(rtglock_flags & XFS_RTGLOCK_BITMAP));
 
        if (rtglock_flags & XFS_RTGLOCK_BITMAP) {
-               xfs_iunlock(rtg->rtg_inodes[XFS_RTGI_SUMMARY], XFS_ILOCK_EXCL);
-               xfs_iunlock(rtg->rtg_inodes[XFS_RTGI_BITMAP], XFS_ILOCK_EXCL);
+               xfs_iunlock(rtg_summary(rtg), XFS_ILOCK_EXCL);
+               xfs_iunlock(rtg_bitmap(rtg), XFS_ILOCK_EXCL);
        } else if (rtglock_flags & XFS_RTGLOCK_BITMAP_SHARED) {
-               xfs_iunlock(rtg->rtg_inodes[XFS_RTGI_BITMAP], XFS_ILOCK_SHARED);
+               xfs_iunlock(rtg_bitmap(rtg), XFS_ILOCK_SHARED);
        }
 }
 
@@ -236,10 +236,8 @@ xfs_rtgroup_trans_join(
        ASSERT(!(rtglock_flags & XFS_RTGLOCK_BITMAP_SHARED));
 
        if (rtglock_flags & XFS_RTGLOCK_BITMAP) {
-               xfs_trans_ijoin(tp, rtg->rtg_inodes[XFS_RTGI_BITMAP],
-                               XFS_ILOCK_EXCL);
-               xfs_trans_ijoin(tp, rtg->rtg_inodes[XFS_RTGI_SUMMARY],
-                               XFS_ILOCK_EXCL);
+               xfs_trans_ijoin(tp, rtg_bitmap(rtg), XFS_ILOCK_EXCL);
+               xfs_trans_ijoin(tp, rtg_summary(rtg), XFS_ILOCK_EXCL);
        }
 }
 
index 7e7e491ff06fa5bbe0dbbe8c437e23e866b1077d..19f8d302b9aa3f6b7dc7ae4bacc081ceacd8a087 100644 (file)
@@ -64,6 +64,16 @@ static inline xfs_rgnumber_t rtg_rgno(const struct xfs_rtgroup *rtg)
        return rtg->rtg_group.xg_gno;
 }
 
+static inline struct xfs_inode *rtg_bitmap(const struct xfs_rtgroup *rtg)
+{
+       return rtg->rtg_inodes[XFS_RTGI_BITMAP];
+}
+
+static inline struct xfs_inode *rtg_summary(const struct xfs_rtgroup *rtg)
+{
+       return rtg->rtg_inodes[XFS_RTGI_SUMMARY];
+}
+
 /* Passive rtgroup references */
 static inline struct xfs_rtgroup *
 xfs_rtgroup_get(
index 376a36fd9a9cdd73c4da1b6a1ad3cb66c743882f..fb4970c877abd3bba7de1eee03e0e64544596b7b 100644 (file)
@@ -49,8 +49,7 @@ xchk_setup_rtbitmap(
        if (error)
                return error;
 
-       error = xchk_install_live_inode(sc,
-                       sc->sr.rtg->rtg_inodes[XFS_RTGI_BITMAP]);
+       error = xchk_install_live_inode(sc, rtg_bitmap(sc->sr.rtg));
        if (error)
                return error;
 
@@ -146,7 +145,7 @@ xchk_rtbitmap(
 {
        struct xfs_mount        *mp = sc->mp;
        struct xfs_rtgroup      *rtg = sc->sr.rtg;
-       struct xfs_inode        *rbmip = rtg->rtg_inodes[XFS_RTGI_BITMAP];
+       struct xfs_inode        *rbmip = rtg_bitmap(rtg);
        struct xchk_rtbitmap    *rtb = sc->buf;
        int                     error;
 
@@ -215,7 +214,7 @@ xchk_xref_is_used_rt_space(
        xfs_extlen_t            len)
 {
        struct xfs_rtgroup      *rtg = sc->sr.rtg;
-       struct xfs_inode        *rbmip = rtg->rtg_inodes[XFS_RTGI_BITMAP];
+       struct xfs_inode        *rbmip = rtg_bitmap(rtg);
        xfs_rtxnum_t            startext;
        xfs_rtxnum_t            endext;
        bool                    is_free;
index 49fc6250bafcaaaaff1930fd106d70d48d5ee2fb..f1af5431b38856f844e126ac6824e8befc593d13 100644 (file)
@@ -81,8 +81,7 @@ xchk_setup_rtsummary(
        if (error)
                return error;
 
-       error = xchk_install_live_inode(sc,
-                       sc->sr.rtg->rtg_inodes[XFS_RTGI_SUMMARY]);
+       error = xchk_install_live_inode(sc, rtg_summary(sc->sr.rtg));
        if (error)
                return error;
 
@@ -191,8 +190,7 @@ xchk_rtsum_record_free(
        rtlen = xfs_rtxlen_to_extlen(mp, rec->ar_extcount);
 
        if (!xfs_verify_rtbext(mp, rtbno, rtlen)) {
-               xchk_ino_xref_set_corrupt(sc,
-                               rtg->rtg_inodes[XFS_RTGI_BITMAP]->i_ino);
+               xchk_ino_xref_set_corrupt(sc, rtg_bitmap(rtg)->i_ino);
                return -EFSCORRUPTED;
        }
 
@@ -218,7 +216,7 @@ xchk_rtsum_compute(
 
        /* If the bitmap size doesn't match the computed size, bail. */
        if (XFS_FSB_TO_B(mp, xfs_rtbitmap_blockcount(mp)) !=
-           rtg->rtg_inodes[XFS_RTGI_BITMAP]->i_disk_size)
+           rtg_bitmap(rtg)->i_disk_size)
                return -EFSCORRUPTED;
 
        return xfs_rtalloc_query_all(rtg, sc->tp, xchk_rtsum_record_free, sc);
@@ -310,8 +308,8 @@ xchk_rtsummary(
 {
        struct xfs_mount        *mp = sc->mp;
        struct xfs_rtgroup      *rtg = sc->sr.rtg;
-       struct xfs_inode        *rbmip = rtg->rtg_inodes[XFS_RTGI_BITMAP];
-       struct xfs_inode        *rsumip = rtg->rtg_inodes[XFS_RTGI_SUMMARY];
+       struct xfs_inode        *rbmip = rtg_bitmap(rtg);
+       struct xfs_inode        *rsumip = rtg_summary(rtg);
        struct xchk_rtsummary   *rts = sc->buf;
        int                     error;
 
index 3abab5fb593e370c03b3b3113d3c859d0aca26c8..e1ba5af6250f0bc2aace20a5983897fa38146918 100644 (file)
@@ -230,10 +230,10 @@ xfs_qm_unmount_rt(
 
        if (!rtg)
                return;
-       if (rtg->rtg_inodes[XFS_RTGI_BITMAP])
-               xfs_qm_dqdetach(rtg->rtg_inodes[XFS_RTGI_BITMAP]);
-       if (rtg->rtg_inodes[XFS_RTGI_SUMMARY])
-               xfs_qm_dqdetach(rtg->rtg_inodes[XFS_RTGI_SUMMARY]);
+       if (rtg_bitmap(rtg))
+               xfs_qm_dqdetach(rtg_bitmap(rtg));
+       if (rtg_summary(rtg))
+               xfs_qm_dqdetach(rtg_summary(rtg));
        xfs_rtgroup_rele(rtg);
 }
 
index 5128c5ad72f5da2faf96b544fb1b66e8b437b6a8..4cd2f32aa70a0ae25147ca8932c306f4ab93e24a 100644 (file)
@@ -856,8 +856,8 @@ xfs_growfs_rt_bmblock(
        xfs_fileoff_t           bmbno)
 {
        struct xfs_mount        *mp = rtg_mount(rtg);
-       struct xfs_inode        *rbmip = rtg->rtg_inodes[XFS_RTGI_BITMAP];
-       struct xfs_inode        *rsumip = rtg->rtg_inodes[XFS_RTGI_SUMMARY];
+       struct xfs_inode        *rbmip = rtg_bitmap(rtg);
+       struct xfs_inode        *rsumip = rtg_summary(rtg);
        struct xfs_rtalloc_args args = {
                .mp             = mp,
                .rtg            = rtg,
@@ -1041,8 +1041,8 @@ xfs_growfs_rt_alloc_blocks(
        xfs_extlen_t            *nrbmblocks)
 {
        struct xfs_mount        *mp = rtg_mount(rtg);
-       struct xfs_inode        *rbmip = rtg->rtg_inodes[XFS_RTGI_BITMAP];
-       struct xfs_inode        *rsumip = rtg->rtg_inodes[XFS_RTGI_SUMMARY];
+       struct xfs_inode        *rbmip = rtg_bitmap(rtg);
+       struct xfs_inode        *rsumip = rtg_summary(rtg);
        xfs_extlen_t            orbmblocks = 0;
        xfs_extlen_t            orsumblocks = 0;
        struct xfs_mount        *nmp;
@@ -1622,7 +1622,7 @@ xfs_rtpick_extent(
        xfs_rtxlen_t            len)            /* allocation length (rtextents) */
 {
        struct xfs_mount        *mp = rtg_mount(rtg);
-       struct xfs_inode        *rbmip = rtg->rtg_inodes[XFS_RTGI_BITMAP];
+       struct xfs_inode        *rbmip = rtg_bitmap(rtg);
        xfs_rtxnum_t            b = 0;          /* result rtext */
        int                     log2;           /* log of sequence number */
        uint64_t                resid;          /* residual after log removed */