xfs: clean up rmap log intent item tracepoint callsites
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>
This commit is contained in:
parent
47492ed124
commit
fbe8c7e167
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
__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 %d agno 0x%x agbno 0x%x owner 0x%llx %s fileoff 0x%llx fsbcount 0x%llx state %d",
|
||||
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);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user