]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
xfs: clean up rmap log intent item tracepoint callsites
authorDarrick J. Wong <djwong@kernel.org>
Tue, 2 Jul 2024 18:22:59 +0000 (11:22 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 2 Jul 2024 18:37:03 +0000 (11:37 -0700)
Pass the incore rmap structure to the tracepoints instead of open-coding
the argument passing.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_rmap.c
fs/xfs/libxfs/xfs_rmap.h
fs/xfs/xfs_trace.c
fs/xfs/xfs_trace.h

index ce8ea3c8428395de24f703194faf07ab9aa3cde2..637a4b1db9b986262744cf9f85a1d83a1e71c5fd 100644 (file)
@@ -2585,20 +2585,15 @@ xfs_rmap_finish_one(
        struct xfs_rmap_intent          *ri,
        struct xfs_btree_cur            **pcur)
 {
+       struct xfs_owner_info           oinfo;
        struct xfs_mount                *mp = tp->t_mountp;
        struct xfs_btree_cur            *rcur;
        struct xfs_buf                  *agbp = NULL;
-       int                             error = 0;
-       struct xfs_owner_info           oinfo;
        xfs_agblock_t                   bno;
        bool                            unwritten;
+       int                             error = 0;
 
-       bno = XFS_FSB_TO_AGBNO(mp, ri->ri_bmap.br_startblock);
-
-       trace_xfs_rmap_deferred(mp, ri->ri_pag->pag_agno, ri->ri_type, bno,
-                       ri->ri_owner, ri->ri_whichfork,
-                       ri->ri_bmap.br_startoff, ri->ri_bmap.br_blockcount,
-                       ri->ri_bmap.br_state);
+       trace_xfs_rmap_deferred(mp, ri);
 
        if (XFS_TEST_ERROR(false, mp, XFS_ERRTAG_RMAP_FINISH_ONE))
                return -EIO;
@@ -2673,15 +2668,6 @@ __xfs_rmap_add(
 {
        struct xfs_rmap_intent          *ri;
 
-       trace_xfs_rmap_defer(tp->t_mountp,
-                       XFS_FSB_TO_AGNO(tp->t_mountp, bmap->br_startblock),
-                       type,
-                       XFS_FSB_TO_AGBNO(tp->t_mountp, bmap->br_startblock),
-                       owner, whichfork,
-                       bmap->br_startoff,
-                       bmap->br_blockcount,
-                       bmap->br_state);
-
        ri = kmem_cache_alloc(xfs_rmap_intent_cache, GFP_KERNEL | __GFP_NOFAIL);
        INIT_LIST_HEAD(&ri->ri_list);
        ri->ri_type = type;
@@ -2689,6 +2675,8 @@ __xfs_rmap_add(
        ri->ri_whichfork = whichfork;
        ri->ri_bmap = *bmap;
 
+       trace_xfs_rmap_defer(tp->t_mountp, ri);
+
        xfs_rmap_update_get_group(tp->t_mountp, ri);
        xfs_defer_add(tp, &ri->ri_list, &xfs_rmap_update_defer_type);
 }
index 9d01fe689497bd9a219aef87d088176e2f39f368..731c97137b5a06fd4a6fc48d85dbffd23a8ed693 100644 (file)
@@ -157,6 +157,16 @@ enum xfs_rmap_intent_type {
        XFS_RMAP_FREE,
 };
 
+#define XFS_RMAP_INTENT_STRINGS \
+       { XFS_RMAP_MAP,                 "map" }, \
+       { XFS_RMAP_MAP_SHARED,          "map_shared" }, \
+       { XFS_RMAP_UNMAP,               "unmap" }, \
+       { XFS_RMAP_UNMAP_SHARED,        "unmap_shared" }, \
+       { XFS_RMAP_CONVERT,             "cvt" }, \
+       { XFS_RMAP_CONVERT_SHARED,      "cvt_shared" }, \
+       { XFS_RMAP_ALLOC,               "alloc" }, \
+       { XFS_RMAP_FREE,                "free" }
+
 struct xfs_rmap_intent {
        struct list_head                        ri_list;
        enum xfs_rmap_intent_type               ri_type;
index e1ec56d957916ac4114ad7154297ba9c26625511..ae30178120897f7560c748dfb3b69e968c579b6b 100644 (file)
@@ -41,6 +41,7 @@
 #include "xfs_exchmaps.h"
 #include "xfs_exchrange.h"
 #include "xfs_parent.h"
+#include "xfs_rmap.h"
 
 /*
  * We include this last to have the helpers above available for the trace
index 462eb84f9a8526e214060332e80cd883ba8dfd30..0c235bdea73858479b02d8f7d98c21ae32bbc7af 100644 (file)
@@ -91,6 +91,7 @@ struct xfs_getparents;
 struct xfs_parent_irec;
 struct xfs_attrlist_cursor_kern;
 struct xfs_extent_free_item;
+struct xfs_rmap_intent;
 
 #define XFS_ATTR_FILTER_FLAGS \
        { XFS_ATTR_ROOT,        "ROOT" }, \
@@ -2958,20 +2959,22 @@ DEFINE_EVENT(xfs_rmapbt_class, name, \
                 uint64_t owner, uint64_t offset, unsigned int flags), \
        TP_ARGS(cur, agbno, len, owner, offset, flags))
 
+TRACE_DEFINE_ENUM(XFS_RMAP_MAP);
+TRACE_DEFINE_ENUM(XFS_RMAP_MAP_SHARED);
+TRACE_DEFINE_ENUM(XFS_RMAP_UNMAP);
+TRACE_DEFINE_ENUM(XFS_RMAP_UNMAP_SHARED);
+TRACE_DEFINE_ENUM(XFS_RMAP_CONVERT);
+TRACE_DEFINE_ENUM(XFS_RMAP_CONVERT_SHARED);
+TRACE_DEFINE_ENUM(XFS_RMAP_ALLOC);
+TRACE_DEFINE_ENUM(XFS_RMAP_FREE);
+
 DECLARE_EVENT_CLASS(xfs_rmap_deferred_class,
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
-                int op,
-                xfs_agblock_t agbno,
-                xfs_ino_t ino,
-                int whichfork,
-                xfs_fileoff_t offset,
-                xfs_filblks_t len,
-                xfs_exntst_t state),
-       TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state),
+       TP_PROTO(struct xfs_mount *mp, struct xfs_rmap_intent *ri),
+       TP_ARGS(mp, ri),
        TP_STRUCT__entry(
                __field(dev_t, dev)
+               __field(unsigned long long, owner)
                __field(xfs_agnumber_t, agno)
-               __field(xfs_ino_t, ino)
                __field(xfs_agblock_t, agbno)
                __field(int, whichfork)
                __field(xfs_fileoff_t, l_loff)
@@ -2981,21 +2984,22 @@ DECLARE_EVENT_CLASS(xfs_rmap_deferred_class,
        ),
        TP_fast_assign(
                __entry->dev = mp->m_super->s_dev;
-               __entry->agno = agno;
-               __entry->ino = ino;
-               __entry->agbno = agbno;
-               __entry->whichfork = whichfork;
-               __entry->l_loff = offset;
-               __entry->l_len = len;
-               __entry->l_state = state;
-               __entry->op = op;
-       ),
-       TP_printk("dev %d:%d op %d agno 0x%x agbno 0x%x owner 0x%llx %s fileoff 0x%llx fsbcount 0x%llx state %d",
+               __entry->agno = XFS_FSB_TO_AGNO(mp, ri->ri_bmap.br_startblock);
+               __entry->agbno = XFS_FSB_TO_AGBNO(mp,
+                                       ri->ri_bmap.br_startblock);
+               __entry->owner = ri->ri_owner;
+               __entry->whichfork = ri->ri_whichfork;
+               __entry->l_loff = ri->ri_bmap.br_startoff;
+               __entry->l_len = ri->ri_bmap.br_blockcount;
+               __entry->l_state = ri->ri_bmap.br_state;
+               __entry->op = ri->ri_type;
+       ),
+       TP_printk("dev %d:%d op %s agno 0x%x agbno 0x%x owner 0x%llx %s fileoff 0x%llx fsbcount 0x%llx state %d",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
-                 __entry->op,
+                 __print_symbolic(__entry->op, XFS_RMAP_INTENT_STRINGS),
                  __entry->agno,
                  __entry->agbno,
-                 __entry->ino,
+                 __entry->owner,
                  __print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS),
                  __entry->l_loff,
                  __entry->l_len,
@@ -3003,15 +3007,8 @@ DECLARE_EVENT_CLASS(xfs_rmap_deferred_class,
 );
 #define DEFINE_RMAP_DEFERRED_EVENT(name) \
 DEFINE_EVENT(xfs_rmap_deferred_class, name, \
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
-                int op, \
-                xfs_agblock_t agbno, \
-                xfs_ino_t ino, \
-                int whichfork, \
-                xfs_fileoff_t offset, \
-                xfs_filblks_t len, \
-                xfs_exntst_t state), \
-       TP_ARGS(mp, agno, op, agbno, ino, whichfork, offset, len, state))
+       TP_PROTO(struct xfs_mount *mp, struct xfs_rmap_intent *ri), \
+       TP_ARGS(mp, ri))
 DEFINE_RMAP_DEFERRED_EVENT(xfs_rmap_defer);
 DEFINE_RMAP_DEFERRED_EVENT(xfs_rmap_deferred);