xfs: add tracepoints for high level iunlink operations
Add tracepoints so we can associate high level operations with low level updates. No functional changes. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Brian Foster <bfoster@redhat.com>
This commit is contained in:
parent
b1d2a068ea
commit
4664c66c91
|
@ -2047,6 +2047,7 @@ xfs_iunlink(
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
ASSERT(VFS_I(ip)->i_mode != 0);
|
ASSERT(VFS_I(ip)->i_mode != 0);
|
||||||
|
trace_xfs_iunlink(ip);
|
||||||
|
|
||||||
/* Get the agi buffer first. It ensures lock ordering on the list. */
|
/* Get the agi buffer first. It ensures lock ordering on the list. */
|
||||||
error = xfs_read_agi(mp, tp, agno, &agibp);
|
error = xfs_read_agi(mp, tp, agno, &agibp);
|
||||||
|
@ -2193,6 +2194,8 @@ xfs_iunlink_remove(
|
||||||
short bucket_index = agino % XFS_AGI_UNLINKED_BUCKETS;
|
short bucket_index = agino % XFS_AGI_UNLINKED_BUCKETS;
|
||||||
int error;
|
int error;
|
||||||
|
|
||||||
|
trace_xfs_iunlink_remove(ip);
|
||||||
|
|
||||||
/* Get the agi buffer first. It ensures lock ordering on the list. */
|
/* Get the agi buffer first. It ensures lock ordering on the list. */
|
||||||
error = xfs_read_agi(mp, tp, agno, &agibp);
|
error = xfs_read_agi(mp, tp, agno, &agibp);
|
||||||
if (error)
|
if (error)
|
||||||
|
|
|
@ -3423,6 +3423,31 @@ TRACE_EVENT(xfs_iunlink_update_dinode,
|
||||||
__entry->new_ptr)
|
__entry->new_ptr)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
DECLARE_EVENT_CLASS(xfs_ag_inode_class,
|
||||||
|
TP_PROTO(struct xfs_inode *ip),
|
||||||
|
TP_ARGS(ip),
|
||||||
|
TP_STRUCT__entry(
|
||||||
|
__field(dev_t, dev)
|
||||||
|
__field(xfs_agnumber_t, agno)
|
||||||
|
__field(xfs_agino_t, agino)
|
||||||
|
),
|
||||||
|
TP_fast_assign(
|
||||||
|
__entry->dev = VFS_I(ip)->i_sb->s_dev;
|
||||||
|
__entry->agno = XFS_INO_TO_AGNO(ip->i_mount, ip->i_ino);
|
||||||
|
__entry->agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino);
|
||||||
|
),
|
||||||
|
TP_printk("dev %d:%d agno %u agino %u",
|
||||||
|
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||||
|
__entry->agno, __entry->agino)
|
||||||
|
)
|
||||||
|
|
||||||
|
#define DEFINE_AGINODE_EVENT(name) \
|
||||||
|
DEFINE_EVENT(xfs_ag_inode_class, name, \
|
||||||
|
TP_PROTO(struct xfs_inode *ip), \
|
||||||
|
TP_ARGS(ip))
|
||||||
|
DEFINE_AGINODE_EVENT(xfs_iunlink);
|
||||||
|
DEFINE_AGINODE_EVENT(xfs_iunlink_remove);
|
||||||
|
|
||||||
#endif /* _TRACE_XFS_H */
|
#endif /* _TRACE_XFS_H */
|
||||||
|
|
||||||
#undef TRACE_INCLUDE_PATH
|
#undef TRACE_INCLUDE_PATH
|
||||||
|
|
Loading…
Reference in New Issue