Commit 3fd7cb84 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: fix incorrect unit conversion in scrub tracepoint

XFS_DADDR_TO_FSB converts a raw disk address (in units of 512b blocks)
to a raw disk address (in units of fs blocks).  Unfortunately, the
xchk_block_error_class tracepoints incorrectly uses this to decode
xfs_daddr_t into segmented AG number and AG block addresses.  Use the
correct translation code.
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarCarlos Maiolino <cmaiolino@redhat.com>
parent a437b9b4
...@@ -193,29 +193,21 @@ DECLARE_EVENT_CLASS(xchk_block_error_class, ...@@ -193,29 +193,21 @@ DECLARE_EVENT_CLASS(xchk_block_error_class,
__field(dev_t, dev) __field(dev_t, dev)
__field(unsigned int, type) __field(unsigned int, type)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_agblock_t, bno) __field(xfs_agblock_t, agbno)
__field(void *, ret_ip) __field(void *, ret_ip)
), ),
TP_fast_assign( TP_fast_assign(
xfs_fsblock_t fsbno;
xfs_agnumber_t agno;
xfs_agblock_t bno;
fsbno = XFS_DADDR_TO_FSB(sc->mp, daddr);
agno = XFS_FSB_TO_AGNO(sc->mp, fsbno);
bno = XFS_FSB_TO_AGBNO(sc->mp, fsbno);
__entry->dev = sc->mp->m_super->s_dev; __entry->dev = sc->mp->m_super->s_dev;
__entry->type = sc->sm->sm_type; __entry->type = sc->sm->sm_type;
__entry->agno = agno; __entry->agno = xfs_daddr_to_agno(sc->mp, daddr);
__entry->bno = bno; __entry->agbno = xfs_daddr_to_agbno(sc->mp, daddr);
__entry->ret_ip = ret_ip; __entry->ret_ip = ret_ip;
), ),
TP_printk("dev %d:%d type %s agno %u agbno %u ret_ip %pS", TP_printk("dev %d:%d type %s agno %u agbno %u ret_ip %pS",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
__entry->agno, __entry->agno,
__entry->bno, __entry->agbno,
__entry->ret_ip) __entry->ret_ip)
) )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment