]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xfs: add a XFS_INODE_TO_AGINO helper
authorChristoph Hellwig <hch@lst.de>
Fri, 15 May 2026 13:50:23 +0000 (15:50 +0200)
committerCarlos Maiolino <cem@kernel.org>
Tue, 9 Jun 2026 07:14:41 +0000 (09:14 +0200)
Add a shortcut for the common XFS_INO_TO_AGINO(mp, ip->i_ino) pattern.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/libxfs/xfs_format.h
fs/xfs/libxfs/xfs_inode_util.c
fs/xfs/scrub/agheader_repair.c
fs/xfs/scrub/trace.h
fs/xfs/xfs_icache.c
fs/xfs/xfs_inode.c
fs/xfs/xfs_trace.h

index 36a00c174f1ea1ebd8970bbdc7fbeb9ec15a2478..f812c6782492cb4e2f9301e140063cf4b4fc51f8 100644 (file)
@@ -1280,6 +1280,8 @@ static inline bool xfs_dinode_is_metadir(const struct xfs_dinode *dip)
        XFS_INO_TO_AGNO((ip)->i_mount, (ip)->i_ino)
 #define        XFS_INO_TO_AGINO(mp,i)          \
        ((xfs_agino_t)(i) & XFS_INO_MASK(XFS_INO_AGINO_BITS(mp)))
+#define        XFS_INODE_TO_AGINO(ip)          \
+       XFS_INO_TO_AGINO((ip)->i_mount, (ip)->i_ino)
 #define        XFS_INO_TO_AGBNO(mp,i)          \
        (((xfs_agblock_t)(i) >> XFS_INO_OFFSET_BITS(mp)) & \
                XFS_INO_MASK(XFS_INO_AGBNO_BITS(mp)))
index b478d16c0e20e74d4e975ddf3352a27a162a630b..f42935fe693d3699d63cd9de6762857a36a1edd5 100644 (file)
@@ -462,10 +462,9 @@ xfs_iunlink_insert_inode(
        struct xfs_buf          *agibp,
        struct xfs_inode        *ip)
 {
-       struct xfs_mount        *mp = tp->t_mountp;
        struct xfs_agi          *agi = agibp->b_addr;
        xfs_agino_t             next_agino;
-       xfs_agino_t             agino = XFS_INO_TO_AGINO(mp, ip->i_ino);
+       xfs_agino_t             agino = XFS_INODE_TO_AGINO(ip);
        short                   bucket_index = agino % XFS_AGI_UNLINKED_BUCKETS;
        int                     error;
 
@@ -551,7 +550,7 @@ xfs_iunlink_remove_inode(
 {
        struct xfs_mount        *mp = tp->t_mountp;
        struct xfs_agi          *agi = agibp->b_addr;
-       xfs_agino_t             agino = XFS_INO_TO_AGINO(mp, ip->i_ino);
+       xfs_agino_t             agino = XFS_INODE_TO_AGINO(ip);
        xfs_agino_t             head_agino;
        short                   bucket_index = agino % XFS_AGI_UNLINKED_BUCKETS;
        int                     error;
index c8d54ce6e363962535b140d4cbea3fe2cca2a028..53c6d68ac63803f8cd2b7a61d3ce22f4bf65af1b 100644 (file)
@@ -1134,18 +1134,14 @@ xrep_iunlink_visit(
        struct xrep_agi         *ragi,
        unsigned int            batch_idx)
 {
-       struct xfs_mount        *mp = ragi->sc->mp;
        struct xfs_inode        *ip = ragi->lookup_batch[batch_idx];
-       xfs_agino_t             agino;
-       unsigned int            bucket;
+       xfs_agino_t             agino = XFS_INODE_TO_AGINO(ip);
+       unsigned int            bucket = agino % XFS_AGI_UNLINKED_BUCKETS;
        int                     error;
 
        ASSERT(XFS_INODE_TO_AGNO(ip) == pag_agno(ragi->sc->sa.pag));
        ASSERT(xfs_inode_on_unlinked_list(ip));
 
-       agino = XFS_INO_TO_AGINO(mp, ip->i_ino);
-       bucket = agino % XFS_AGI_UNLINKED_BUCKETS;
-
        trace_xrep_iunlink_visit(ragi->sc->sa.pag, bucket,
                        ragi->iunlink_heads[bucket], ip);
 
@@ -1214,7 +1210,7 @@ xrep_iunlink_mark_incore(
                        if (XFS_INODE_TO_AGNO(ip) != pag_agno(pag))
                                continue;
                        first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1);
-                       if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino))
+                       if (first_index < XFS_INODE_TO_AGINO(ip))
                                done = true;
                }
 
index 6c684e9433db5677fbd3504e91ce40ad84d4aef3..f607ac5fb9537c41045996080418a39f1c37597c 100644 (file)
@@ -3443,7 +3443,7 @@ TRACE_EVENT(xrep_iunlink_visit,
        TP_fast_assign(
                __entry->dev = pag_mount(pag)->m_super->s_dev;
                __entry->agno = pag_agno(pag);
-               __entry->agino = XFS_INO_TO_AGINO(pag_mount(pag), ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
                __entry->bucket = bucket;
                __entry->bucket_agino = bucket_agino;
                __entry->prev_agino = ip->i_prev_unlinked;
@@ -3474,7 +3474,7 @@ TRACE_EVENT(xrep_iunlink_reload_next,
        TP_fast_assign(
                __entry->dev = ip->i_mount->m_super->s_dev;
                __entry->agno = XFS_INODE_TO_AGNO(ip);
-               __entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
                __entry->old_prev_agino = ip->i_prev_unlinked;
                __entry->prev_agino = prev_agino;
                __entry->next_agino = ip->i_next_unlinked;
@@ -3504,7 +3504,7 @@ TRACE_EVENT(xrep_iunlink_reload_ondisk,
        TP_fast_assign(
                __entry->dev = ip->i_mount->m_super->s_dev;
                __entry->agno = XFS_INODE_TO_AGNO(ip);
-               __entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
                __entry->nlink = VFS_I(ip)->i_nlink;
                __entry->next_agino = ip->i_next_unlinked;
        ),
@@ -3591,7 +3591,7 @@ TRACE_EVENT(xrep_iunlink_relink_next,
        TP_fast_assign(
                __entry->dev = ip->i_mount->m_super->s_dev;
                __entry->agno = XFS_INODE_TO_AGNO(ip);
-               __entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
                __entry->next_agino = ip->i_next_unlinked;
                __entry->new_next_agino = next_agino;
        ),
@@ -3617,7 +3617,7 @@ TRACE_EVENT(xrep_iunlink_relink_prev,
        TP_fast_assign(
                __entry->dev = ip->i_mount->m_super->s_dev;
                __entry->agno = XFS_INODE_TO_AGNO(ip);
-               __entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
                __entry->prev_agino = ip->i_prev_unlinked;
                __entry->new_prev_agino = prev_agino;
        ),
index 73f06bb130759137d0403ff007f6359a316f7d6c..d0bc8ea79d40f8e005933b0d1a42aaff502291a5 100644 (file)
@@ -397,7 +397,7 @@ xfs_iget_recycle(
         */
        ip->i_flags &= ~XFS_IRECLAIM_RESET_FLAGS;
        ip->i_flags |= XFS_INEW;
-       xfs_perag_clear_inode_tag(pag, XFS_INO_TO_AGINO(mp, ip->i_ino),
+       xfs_perag_clear_inode_tag(pag, XFS_INODE_TO_AGINO(ip),
                        XFS_ICI_RECLAIM_TAG);
        inode_state_assign_raw(inode, I_NEW);
        spin_unlock(&ip->i_flags_lock);
@@ -1288,7 +1288,7 @@ xfs_blockgc_set_iflag(
        pag = xfs_perag_get(mp, XFS_INODE_TO_AGNO(ip));
        spin_lock(&pag->pag_ici_lock);
 
-       xfs_perag_set_inode_tag(pag, XFS_INO_TO_AGINO(mp, ip->i_ino),
+       xfs_perag_set_inode_tag(pag, XFS_INODE_TO_AGINO(ip),
                        XFS_ICI_BLOCKGC_TAG);
 
        spin_unlock(&pag->pag_ici_lock);
@@ -1325,7 +1325,7 @@ xfs_blockgc_clear_iflag(
        pag = xfs_perag_get(mp, XFS_INODE_TO_AGNO(ip));
        spin_lock(&pag->pag_ici_lock);
 
-       xfs_perag_clear_inode_tag(pag, XFS_INO_TO_AGINO(mp, ip->i_ino),
+       xfs_perag_clear_inode_tag(pag, XFS_INODE_TO_AGINO(ip),
                        XFS_ICI_BLOCKGC_TAG);
 
        spin_unlock(&pag->pag_ici_lock);
@@ -1803,7 +1803,7 @@ restart:
                        if (XFS_INODE_TO_AGNO(ip) != pag_agno(pag))
                                continue;
                        first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1);
-                       if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino))
+                       if (first_index < XFS_INODE_TO_AGINO(ip))
                                done = true;
                }
 
@@ -1921,7 +1921,7 @@ xfs_inodegc_set_reclaimable(
        trace_xfs_inode_set_reclaimable(ip);
        ip->i_flags &= ~(XFS_NEED_INACTIVE | XFS_INACTIVATING);
        ip->i_flags |= XFS_IRECLAIMABLE;
-       xfs_perag_set_inode_tag(pag, XFS_INO_TO_AGINO(mp, ip->i_ino),
+       xfs_perag_set_inode_tag(pag, XFS_INODE_TO_AGINO(ip),
                        XFS_ICI_RECLAIM_TAG);
 
        spin_unlock(&ip->i_flags_lock);
index f049543726f0a1d6b2ff2f6576f4fda99a540a5b..93755cf7ecc4d3c0721fb2ba98f45a774b2150c7 100644 (file)
@@ -2853,7 +2853,7 @@ xfs_inode_reload_unlinked_bucket(
        struct xfs_agi          *agi;
        struct xfs_perag        *pag;
        xfs_agnumber_t          agno = XFS_INODE_TO_AGNO(ip);
-       xfs_agino_t             agino = XFS_INO_TO_AGINO(mp, ip->i_ino);
+       xfs_agino_t             agino = XFS_INODE_TO_AGINO(ip);
        xfs_agino_t             prev_agino, next_agino;
        unsigned int            bucket;
        bool                    foundit = false;
index cd8b85dac7a88c210290a89e83940fadd2ce249a..6767e50b643d4512c6d9cb45a47eb0faf08dad9d 100644 (file)
@@ -4504,8 +4504,7 @@ TRACE_EVENT(xfs_iunlink_update_dinode,
        TP_fast_assign(
                __entry->dev = pag_mount(iup->pag)->m_super->s_dev;
                __entry->agno = pag_agno(iup->pag);
-               __entry->agino =
-                       XFS_INO_TO_AGINO(iup->ip->i_mount, iup->ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(iup->ip);
                __entry->old_ptr = old_ptr;
                __entry->new_ptr = iup->next_agino;
        ),
@@ -4530,7 +4529,7 @@ TRACE_EVENT(xfs_iunlink_reload_next,
        TP_fast_assign(
                __entry->dev = ip->i_mount->m_super->s_dev;
                __entry->agno = XFS_INODE_TO_AGNO(ip);
-               __entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
                __entry->prev_agino = ip->i_prev_unlinked;
                __entry->next_agino = ip->i_next_unlinked;
        ),
@@ -4553,7 +4552,7 @@ TRACE_EVENT(xfs_inode_reload_unlinked_bucket,
        TP_fast_assign(
                __entry->dev = ip->i_mount->m_super->s_dev;
                __entry->agno = XFS_INODE_TO_AGNO(ip);
-               __entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
        ),
        TP_printk("dev %d:%d agno 0x%x agino 0x%x bucket %u",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
@@ -4573,7 +4572,7 @@ DECLARE_EVENT_CLASS(xfs_ag_inode_class,
        TP_fast_assign(
                __entry->dev = VFS_I(ip)->i_sb->s_dev;
                __entry->agno = XFS_INODE_TO_AGNO(ip);
-               __entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(ip);
        ),
        TP_printk("dev %d:%d agno 0x%x agino 0x%x",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
@@ -4770,8 +4769,7 @@ TRACE_EVENT(xfs_btree_commit_ifakeroot,
                __entry->dev = cur->bc_mp->m_super->s_dev;
                __assign_str(name);
                __entry->agno = XFS_INODE_TO_AGNO(cur->bc_ino.ip);
-               __entry->agino = XFS_INO_TO_AGINO(cur->bc_mp,
-                                       cur->bc_ino.ip->i_ino);
+               __entry->agino = XFS_INODE_TO_AGINO(cur->bc_ino.ip);
                __entry->levels = cur->bc_ino.ifake->if_levels;
                __entry->blocks = cur->bc_ino.ifake->if_blocks;
                __entry->whichfork = cur->bc_ino.whichfork;