Commit 77953b97 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong

xfs: add a name field to struct xfs_btree_ops

The btnum in struct xfs_btree_ops is often used for printing a symbolic
name for the btree.  Add a name field to the ops structure and use that
directly.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
parent e45ea364
...@@ -273,9 +273,8 @@ xfs_alloc_complain_bad_rec( ...@@ -273,9 +273,8 @@ xfs_alloc_complain_bad_rec(
struct xfs_mount *mp = cur->bc_mp; struct xfs_mount *mp = cur->bc_mp;
xfs_warn(mp, xfs_warn(mp,
"%s Freespace BTree record corruption in AG %d detected at %pS!", "%sbt record corruption in AG %d detected at %pS!",
cur->bc_btnum == XFS_BTNUM_BNO ? "Block" : "Size", cur->bc_ops->name, cur->bc_ag.pag->pag_agno, fa);
cur->bc_ag.pag->pag_agno, fa);
xfs_warn(mp, xfs_warn(mp,
"start block 0x%x block count 0x%x", irec->ar_startblock, "start block 0x%x block count 0x%x", irec->ar_startblock,
irec->ar_blockcount); irec->ar_blockcount);
...@@ -996,8 +995,7 @@ xfs_alloc_cur_check( ...@@ -996,8 +995,7 @@ xfs_alloc_cur_check(
out: out:
if (deactivate) if (deactivate)
cur->bc_flags &= ~XFS_BTREE_ALLOCBT_ACTIVE; cur->bc_flags &= ~XFS_BTREE_ALLOCBT_ACTIVE;
trace_xfs_alloc_cur_check(args->mp, cur->bc_btnum, bno, len, diff, trace_xfs_alloc_cur_check(cur, bno, len, diff, *new);
*new);
return 0; return 0;
} }
......
...@@ -468,6 +468,7 @@ xfs_allocbt_keys_contiguous( ...@@ -468,6 +468,7 @@ xfs_allocbt_keys_contiguous(
} }
const struct xfs_btree_ops xfs_bnobt_ops = { const struct xfs_btree_ops xfs_bnobt_ops = {
.name = "bno",
.type = XFS_BTREE_TYPE_AG, .type = XFS_BTREE_TYPE_AG,
.rec_len = sizeof(xfs_alloc_rec_t), .rec_len = sizeof(xfs_alloc_rec_t),
...@@ -497,6 +498,7 @@ const struct xfs_btree_ops xfs_bnobt_ops = { ...@@ -497,6 +498,7 @@ const struct xfs_btree_ops xfs_bnobt_ops = {
}; };
const struct xfs_btree_ops xfs_cntbt_ops = { const struct xfs_btree_ops xfs_cntbt_ops = {
.name = "cnt",
.type = XFS_BTREE_TYPE_AG, .type = XFS_BTREE_TYPE_AG,
.geom_flags = XFS_BTGEO_LASTREC_UPDATE, .geom_flags = XFS_BTGEO_LASTREC_UPDATE,
......
...@@ -517,6 +517,7 @@ xfs_bmbt_keys_contiguous( ...@@ -517,6 +517,7 @@ xfs_bmbt_keys_contiguous(
} }
const struct xfs_btree_ops xfs_bmbt_ops = { const struct xfs_btree_ops xfs_bmbt_ops = {
.name = "bmap",
.type = XFS_BTREE_TYPE_INODE, .type = XFS_BTREE_TYPE_INODE,
.rec_len = sizeof(xfs_bmbt_rec_t), .rec_len = sizeof(xfs_bmbt_rec_t),
......
...@@ -298,17 +298,17 @@ xfs_btree_check_ptr( ...@@ -298,17 +298,17 @@ xfs_btree_check_ptr(
level)) level))
return 0; return 0;
xfs_err(cur->bc_mp, xfs_err(cur->bc_mp,
"Inode %llu fork %d: Corrupt btree %d pointer at level %d index %d.", "Inode %llu fork %d: Corrupt %sbt pointer at level %d index %d.",
cur->bc_ino.ip->i_ino, cur->bc_ino.ip->i_ino,
cur->bc_ino.whichfork, cur->bc_btnum, cur->bc_ino.whichfork, cur->bc_ops->name,
level, index); level, index);
} else { } else {
if (xfs_btree_check_sptr(cur, be32_to_cpu((&ptr->s)[index]), if (xfs_btree_check_sptr(cur, be32_to_cpu((&ptr->s)[index]),
level)) level))
return 0; return 0;
xfs_err(cur->bc_mp, xfs_err(cur->bc_mp,
"AG %u: Corrupt btree %d pointer at level %d index %d.", "AG %u: Corrupt %sbt pointer at level %d index %d.",
cur->bc_ag.pag->pag_agno, cur->bc_btnum, cur->bc_ag.pag->pag_agno, cur->bc_ops->name,
level, index); level, index);
} }
......
...@@ -123,6 +123,8 @@ enum xfs_btree_type { ...@@ -123,6 +123,8 @@ enum xfs_btree_type {
}; };
struct xfs_btree_ops { struct xfs_btree_ops {
const char *name;
/* Type of btree - AG-rooted or inode-rooted */ /* Type of btree - AG-rooted or inode-rooted */
enum xfs_btree_type type; enum xfs_btree_type type;
......
...@@ -141,9 +141,8 @@ xfs_inobt_complain_bad_rec( ...@@ -141,9 +141,8 @@ xfs_inobt_complain_bad_rec(
struct xfs_mount *mp = cur->bc_mp; struct xfs_mount *mp = cur->bc_mp;
xfs_warn(mp, xfs_warn(mp,
"%s Inode BTree record corruption in AG %d detected at %pS!", "%sbt record corruption in AG %d detected at %pS!",
cur->bc_btnum == XFS_BTNUM_INO ? "Used" : "Free", cur->bc_ops->name, cur->bc_ag.pag->pag_agno, fa);
cur->bc_ag.pag->pag_agno, fa);
xfs_warn(mp, xfs_warn(mp,
"start inode 0x%x, count 0x%x, free 0x%x freemask 0x%llx, holemask 0x%x", "start inode 0x%x, count 0x%x, free 0x%x freemask 0x%llx, holemask 0x%x",
irec->ir_startino, irec->ir_count, irec->ir_freecount, irec->ir_startino, irec->ir_count, irec->ir_freecount,
......
...@@ -399,6 +399,7 @@ xfs_inobt_keys_contiguous( ...@@ -399,6 +399,7 @@ xfs_inobt_keys_contiguous(
} }
const struct xfs_btree_ops xfs_inobt_ops = { const struct xfs_btree_ops xfs_inobt_ops = {
.name = "ino",
.type = XFS_BTREE_TYPE_AG, .type = XFS_BTREE_TYPE_AG,
.rec_len = sizeof(xfs_inobt_rec_t), .rec_len = sizeof(xfs_inobt_rec_t),
...@@ -427,6 +428,7 @@ const struct xfs_btree_ops xfs_inobt_ops = { ...@@ -427,6 +428,7 @@ const struct xfs_btree_ops xfs_inobt_ops = {
}; };
const struct xfs_btree_ops xfs_finobt_ops = { const struct xfs_btree_ops xfs_finobt_ops = {
.name = "fino",
.type = XFS_BTREE_TYPE_AG, .type = XFS_BTREE_TYPE_AG,
.rec_len = sizeof(xfs_inobt_rec_t), .rec_len = sizeof(xfs_inobt_rec_t),
......
...@@ -318,6 +318,7 @@ xfs_refcountbt_keys_contiguous( ...@@ -318,6 +318,7 @@ xfs_refcountbt_keys_contiguous(
} }
const struct xfs_btree_ops xfs_refcountbt_ops = { const struct xfs_btree_ops xfs_refcountbt_ops = {
.name = "refcount",
.type = XFS_BTREE_TYPE_AG, .type = XFS_BTREE_TYPE_AG,
.rec_len = sizeof(struct xfs_refcount_rec), .rec_len = sizeof(struct xfs_refcount_rec),
......
...@@ -472,6 +472,7 @@ xfs_rmapbt_keys_contiguous( ...@@ -472,6 +472,7 @@ xfs_rmapbt_keys_contiguous(
} }
const struct xfs_btree_ops xfs_rmapbt_ops = { const struct xfs_btree_ops xfs_rmapbt_ops = {
.name = "rmap",
.type = XFS_BTREE_TYPE_AG, .type = XFS_BTREE_TYPE_AG,
.geom_flags = XFS_BTGEO_OVERLAPPING, .geom_flags = XFS_BTGEO_OVERLAPPING,
......
...@@ -125,15 +125,6 @@ typedef enum { ...@@ -125,15 +125,6 @@ typedef enum {
XFS_BTNUM_INOi, XFS_BTNUM_FINOi, XFS_BTNUM_REFCi, XFS_BTNUM_MAX XFS_BTNUM_INOi, XFS_BTNUM_FINOi, XFS_BTNUM_REFCi, XFS_BTNUM_MAX
} xfs_btnum_t; } xfs_btnum_t;
#define XFS_BTNUM_STRINGS \
{ XFS_BTNUM_BNOi, "bnobt" }, \
{ XFS_BTNUM_CNTi, "cntbt" }, \
{ XFS_BTNUM_RMAPi, "rmapbt" }, \
{ XFS_BTNUM_BMAPi, "bmbt" }, \
{ XFS_BTNUM_INOi, "inobt" }, \
{ XFS_BTNUM_FINOi, "finobt" }, \
{ XFS_BTNUM_REFCi, "refcbt" }
struct xfs_name { struct xfs_name {
const unsigned char *name; const unsigned char *name;
int len; int len;
......
...@@ -459,7 +459,7 @@ TRACE_EVENT(xchk_btree_op_error, ...@@ -459,7 +459,7 @@ TRACE_EVENT(xchk_btree_op_error,
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(unsigned int, type) __field(unsigned int, type)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(int, level) __field(int, level)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_agblock_t, bno) __field(xfs_agblock_t, bno)
...@@ -472,7 +472,7 @@ TRACE_EVENT(xchk_btree_op_error, ...@@ -472,7 +472,7 @@ TRACE_EVENT(xchk_btree_op_error,
__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->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->level = level; __entry->level = level;
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno); __entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno);
__entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno); __entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno);
...@@ -480,10 +480,10 @@ TRACE_EVENT(xchk_btree_op_error, ...@@ -480,10 +480,10 @@ TRACE_EVENT(xchk_btree_op_error,
__entry->error = error; __entry->error = error;
__entry->ret_ip = ret_ip; __entry->ret_ip = ret_ip;
), ),
TP_printk("dev %d:%d type %s btree %s level %d ptr %d agno 0x%x agbno 0x%x error %d ret_ip %pS", TP_printk("dev %d:%d type %s %sbt level %d ptr %d agno 0x%x agbno 0x%x error %d 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),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->level, __entry->level,
__entry->ptr, __entry->ptr,
__entry->agno, __entry->agno,
...@@ -501,7 +501,7 @@ TRACE_EVENT(xchk_ifork_btree_op_error, ...@@ -501,7 +501,7 @@ TRACE_EVENT(xchk_ifork_btree_op_error,
__field(xfs_ino_t, ino) __field(xfs_ino_t, ino)
__field(int, whichfork) __field(int, whichfork)
__field(unsigned int, type) __field(unsigned int, type)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(int, level) __field(int, level)
__field(int, ptr) __field(int, ptr)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
...@@ -515,7 +515,7 @@ TRACE_EVENT(xchk_ifork_btree_op_error, ...@@ -515,7 +515,7 @@ TRACE_EVENT(xchk_ifork_btree_op_error,
__entry->ino = sc->ip->i_ino; __entry->ino = sc->ip->i_ino;
__entry->whichfork = cur->bc_ino.whichfork; __entry->whichfork = cur->bc_ino.whichfork;
__entry->type = sc->sm->sm_type; __entry->type = sc->sm->sm_type;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->level = level; __entry->level = level;
__entry->ptr = cur->bc_levels[level].ptr; __entry->ptr = cur->bc_levels[level].ptr;
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno); __entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno);
...@@ -523,12 +523,12 @@ TRACE_EVENT(xchk_ifork_btree_op_error, ...@@ -523,12 +523,12 @@ TRACE_EVENT(xchk_ifork_btree_op_error,
__entry->error = error; __entry->error = error;
__entry->ret_ip = ret_ip; __entry->ret_ip = ret_ip;
), ),
TP_printk("dev %d:%d ino 0x%llx fork %s type %s btree %s level %d ptr %d agno 0x%x agbno 0x%x error %d ret_ip %pS", TP_printk("dev %d:%d ino 0x%llx fork %s type %s %sbt level %d ptr %d agno 0x%x agbno 0x%x error %d ret_ip %pS",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->ino,
__print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS), __print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS),
__print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->level, __entry->level,
__entry->ptr, __entry->ptr,
__entry->agno, __entry->agno,
...@@ -544,7 +544,7 @@ TRACE_EVENT(xchk_btree_error, ...@@ -544,7 +544,7 @@ TRACE_EVENT(xchk_btree_error,
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(unsigned int, type) __field(unsigned int, type)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(int, level) __field(int, level)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_agblock_t, bno) __field(xfs_agblock_t, bno)
...@@ -555,17 +555,17 @@ TRACE_EVENT(xchk_btree_error, ...@@ -555,17 +555,17 @@ TRACE_EVENT(xchk_btree_error,
xfs_fsblock_t fsbno = xchk_btree_cur_fsbno(cur, level); xfs_fsblock_t fsbno = xchk_btree_cur_fsbno(cur, level);
__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->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->level = level; __entry->level = level;
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno); __entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno);
__entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno); __entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno);
__entry->ptr = cur->bc_levels[level].ptr; __entry->ptr = cur->bc_levels[level].ptr;
__entry->ret_ip = ret_ip; __entry->ret_ip = ret_ip;
), ),
TP_printk("dev %d:%d type %s btree %s level %d ptr %d agno 0x%x agbno 0x%x ret_ip %pS", TP_printk("dev %d:%d type %s %sbt level %d ptr %d agno 0x%x agbno 0x%x 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),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->level, __entry->level,
__entry->ptr, __entry->ptr,
__entry->agno, __entry->agno,
...@@ -582,7 +582,7 @@ TRACE_EVENT(xchk_ifork_btree_error, ...@@ -582,7 +582,7 @@ TRACE_EVENT(xchk_ifork_btree_error,
__field(xfs_ino_t, ino) __field(xfs_ino_t, ino)
__field(int, whichfork) __field(int, whichfork)
__field(unsigned int, type) __field(unsigned int, type)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(int, level) __field(int, level)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_agblock_t, bno) __field(xfs_agblock_t, bno)
...@@ -595,19 +595,19 @@ TRACE_EVENT(xchk_ifork_btree_error, ...@@ -595,19 +595,19 @@ TRACE_EVENT(xchk_ifork_btree_error,
__entry->ino = sc->ip->i_ino; __entry->ino = sc->ip->i_ino;
__entry->whichfork = cur->bc_ino.whichfork; __entry->whichfork = cur->bc_ino.whichfork;
__entry->type = sc->sm->sm_type; __entry->type = sc->sm->sm_type;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->level = level; __entry->level = level;
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno); __entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno);
__entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno); __entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno);
__entry->ptr = cur->bc_levels[level].ptr; __entry->ptr = cur->bc_levels[level].ptr;
__entry->ret_ip = ret_ip; __entry->ret_ip = ret_ip;
), ),
TP_printk("dev %d:%d ino 0x%llx fork %s type %s btree %s level %d ptr %d agno 0x%x agbno 0x%x ret_ip %pS", TP_printk("dev %d:%d ino 0x%llx fork %s type %s %sbt level %d ptr %d agno 0x%x agbno 0x%x ret_ip %pS",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__entry->ino, __entry->ino,
__print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS), __print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS),
__print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS), __print_symbolic(__entry->type, XFS_SCRUB_TYPE_STRINGS),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->level, __entry->level,
__entry->ptr, __entry->ptr,
__entry->agno, __entry->agno,
...@@ -622,7 +622,7 @@ DECLARE_EVENT_CLASS(xchk_sbtree_class, ...@@ -622,7 +622,7 @@ DECLARE_EVENT_CLASS(xchk_sbtree_class,
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(int, type) __field(int, type)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_agblock_t, bno) __field(xfs_agblock_t, bno)
__field(int, level) __field(int, level)
...@@ -634,17 +634,17 @@ DECLARE_EVENT_CLASS(xchk_sbtree_class, ...@@ -634,17 +634,17 @@ DECLARE_EVENT_CLASS(xchk_sbtree_class,
__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->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno); __entry->agno = XFS_FSB_TO_AGNO(cur->bc_mp, fsbno);
__entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno); __entry->bno = XFS_FSB_TO_AGBNO(cur->bc_mp, fsbno);
__entry->level = level; __entry->level = level;
__entry->nlevels = cur->bc_nlevels; __entry->nlevels = cur->bc_nlevels;
__entry->ptr = cur->bc_levels[level].ptr; __entry->ptr = cur->bc_levels[level].ptr;
), ),
TP_printk("dev %d:%d type %s btree %s agno 0x%x agbno 0x%x level %d nlevels %d ptr %d", TP_printk("dev %d:%d type %s %sbt agno 0x%x agbno 0x%x level %d nlevels %d ptr %d",
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),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->agno, __entry->agno,
__entry->bno, __entry->bno,
__entry->level, __entry->level,
......
...@@ -1888,28 +1888,28 @@ DEFINE_ALLOC_EVENT(xfs_alloc_vextent_near_bno); ...@@ -1888,28 +1888,28 @@ DEFINE_ALLOC_EVENT(xfs_alloc_vextent_near_bno);
DEFINE_ALLOC_EVENT(xfs_alloc_vextent_finish); DEFINE_ALLOC_EVENT(xfs_alloc_vextent_finish);
TRACE_EVENT(xfs_alloc_cur_check, TRACE_EVENT(xfs_alloc_cur_check,
TP_PROTO(struct xfs_mount *mp, xfs_btnum_t btnum, xfs_agblock_t bno, TP_PROTO(struct xfs_btree_cur *cur, xfs_agblock_t bno,
xfs_extlen_t len, xfs_extlen_t diff, bool new), xfs_extlen_t len, xfs_extlen_t diff, bool new),
TP_ARGS(mp, btnum, bno, len, diff, new), TP_ARGS(cur, bno, len, diff, new),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(xfs_agblock_t, bno) __field(xfs_agblock_t, bno)
__field(xfs_extlen_t, len) __field(xfs_extlen_t, len)
__field(xfs_extlen_t, diff) __field(xfs_extlen_t, diff)
__field(bool, new) __field(bool, new)
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = mp->m_super->s_dev; __entry->dev = cur->bc_mp->m_super->s_dev;
__entry->btnum = btnum; __assign_str(name, cur->bc_ops->name);
__entry->bno = bno; __entry->bno = bno;
__entry->len = len; __entry->len = len;
__entry->diff = diff; __entry->diff = diff;
__entry->new = new; __entry->new = new;
), ),
TP_printk("dev %d:%d btree %s agbno 0x%x fsbcount 0x%x diff 0x%x new %d", TP_printk("dev %d:%d %sbt agbno 0x%x fsbcount 0x%x diff 0x%x new %d",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->bno, __entry->len, __entry->diff, __entry->new) __entry->bno, __entry->len, __entry->diff, __entry->new)
) )
...@@ -2464,7 +2464,7 @@ DECLARE_EVENT_CLASS(xfs_btree_cur_class, ...@@ -2464,7 +2464,7 @@ DECLARE_EVENT_CLASS(xfs_btree_cur_class,
TP_ARGS(cur, level, bp), TP_ARGS(cur, level, bp),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(int, level) __field(int, level)
__field(int, nlevels) __field(int, nlevels)
__field(int, ptr) __field(int, ptr)
...@@ -2472,15 +2472,15 @@ DECLARE_EVENT_CLASS(xfs_btree_cur_class, ...@@ -2472,15 +2472,15 @@ DECLARE_EVENT_CLASS(xfs_btree_cur_class,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = cur->bc_mp->m_super->s_dev; __entry->dev = cur->bc_mp->m_super->s_dev;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->level = level; __entry->level = level;
__entry->nlevels = cur->bc_nlevels; __entry->nlevels = cur->bc_nlevels;
__entry->ptr = cur->bc_levels[level].ptr; __entry->ptr = cur->bc_levels[level].ptr;
__entry->daddr = bp ? xfs_buf_daddr(bp) : -1; __entry->daddr = bp ? xfs_buf_daddr(bp) : -1;
), ),
TP_printk("dev %d:%d btree %s level %d/%d ptr %d daddr 0x%llx", TP_printk("dev %d:%d %sbt level %d/%d ptr %d daddr 0x%llx",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->level, __entry->level,
__entry->nlevels, __entry->nlevels,
__entry->ptr, __entry->ptr,
...@@ -2502,7 +2502,7 @@ TRACE_EVENT(xfs_btree_alloc_block, ...@@ -2502,7 +2502,7 @@ TRACE_EVENT(xfs_btree_alloc_block,
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_ino_t, ino) __field(xfs_ino_t, ino)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(int, error) __field(int, error)
__field(xfs_agblock_t, agbno) __field(xfs_agblock_t, agbno)
), ),
...@@ -2515,7 +2515,7 @@ TRACE_EVENT(xfs_btree_alloc_block, ...@@ -2515,7 +2515,7 @@ TRACE_EVENT(xfs_btree_alloc_block,
__entry->agno = cur->bc_ag.pag->pag_agno; __entry->agno = cur->bc_ag.pag->pag_agno;
__entry->ino = 0; __entry->ino = 0;
} }
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->error = error; __entry->error = error;
if (!error && stat) { if (!error && stat) {
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) { if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) {
...@@ -2532,9 +2532,9 @@ TRACE_EVENT(xfs_btree_alloc_block, ...@@ -2532,9 +2532,9 @@ TRACE_EVENT(xfs_btree_alloc_block,
__entry->agbno = NULLAGBLOCK; __entry->agbno = NULLAGBLOCK;
} }
), ),
TP_printk("dev %d:%d btree %s agno 0x%x ino 0x%llx agbno 0x%x error %d", TP_printk("dev %d:%d %sbt agno 0x%x ino 0x%llx agbno 0x%x error %d",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->agno, __entry->agno,
__entry->ino, __entry->ino,
__entry->agbno, __entry->agbno,
...@@ -2548,7 +2548,7 @@ TRACE_EVENT(xfs_btree_free_block, ...@@ -2548,7 +2548,7 @@ TRACE_EVENT(xfs_btree_free_block,
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_ino_t, ino) __field(xfs_ino_t, ino)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(xfs_agblock_t, agbno) __field(xfs_agblock_t, agbno)
), ),
TP_fast_assign( TP_fast_assign(
...@@ -2559,13 +2559,13 @@ TRACE_EVENT(xfs_btree_free_block, ...@@ -2559,13 +2559,13 @@ TRACE_EVENT(xfs_btree_free_block,
__entry->ino = cur->bc_ino.ip->i_ino; __entry->ino = cur->bc_ino.ip->i_ino;
else else
__entry->ino = 0; __entry->ino = 0;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->agbno = xfs_daddr_to_agbno(cur->bc_mp, __entry->agbno = xfs_daddr_to_agbno(cur->bc_mp,
xfs_buf_daddr(bp)); xfs_buf_daddr(bp));
), ),
TP_printk("dev %d:%d btree %s agno 0x%x ino 0x%llx agbno 0x%x", TP_printk("dev %d:%d %sbt agno 0x%x ino 0x%llx agbno 0x%x",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->agno, __entry->agno,
__entry->ino, __entry->ino,
__entry->agbno) __entry->agbno)
...@@ -4142,7 +4142,7 @@ TRACE_EVENT(xfs_btree_commit_afakeroot, ...@@ -4142,7 +4142,7 @@ TRACE_EVENT(xfs_btree_commit_afakeroot,
TP_ARGS(cur), TP_ARGS(cur),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_agblock_t, agbno) __field(xfs_agblock_t, agbno)
__field(unsigned int, levels) __field(unsigned int, levels)
...@@ -4150,15 +4150,15 @@ TRACE_EVENT(xfs_btree_commit_afakeroot, ...@@ -4150,15 +4150,15 @@ TRACE_EVENT(xfs_btree_commit_afakeroot,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = cur->bc_mp->m_super->s_dev; __entry->dev = cur->bc_mp->m_super->s_dev;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->agno = cur->bc_ag.pag->pag_agno; __entry->agno = cur->bc_ag.pag->pag_agno;
__entry->agbno = cur->bc_ag.afake->af_root; __entry->agbno = cur->bc_ag.afake->af_root;
__entry->levels = cur->bc_ag.afake->af_levels; __entry->levels = cur->bc_ag.afake->af_levels;
__entry->blocks = cur->bc_ag.afake->af_blocks; __entry->blocks = cur->bc_ag.afake->af_blocks;
), ),
TP_printk("dev %d:%d btree %s agno 0x%x levels %u blocks %u root %u", TP_printk("dev %d:%d %sbt agno 0x%x levels %u blocks %u root %u",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->agno, __entry->agno,
__entry->levels, __entry->levels,
__entry->blocks, __entry->blocks,
...@@ -4170,7 +4170,7 @@ TRACE_EVENT(xfs_btree_commit_ifakeroot, ...@@ -4170,7 +4170,7 @@ TRACE_EVENT(xfs_btree_commit_ifakeroot,
TP_ARGS(cur), TP_ARGS(cur),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(xfs_agnumber_t, agno) __field(xfs_agnumber_t, agno)
__field(xfs_agino_t, agino) __field(xfs_agino_t, agino)
__field(unsigned int, levels) __field(unsigned int, levels)
...@@ -4179,7 +4179,7 @@ TRACE_EVENT(xfs_btree_commit_ifakeroot, ...@@ -4179,7 +4179,7 @@ TRACE_EVENT(xfs_btree_commit_ifakeroot,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = cur->bc_mp->m_super->s_dev; __entry->dev = cur->bc_mp->m_super->s_dev;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->agno = XFS_INO_TO_AGNO(cur->bc_mp, __entry->agno = XFS_INO_TO_AGNO(cur->bc_mp,
cur->bc_ino.ip->i_ino); cur->bc_ino.ip->i_ino);
__entry->agino = XFS_INO_TO_AGINO(cur->bc_mp, __entry->agino = XFS_INO_TO_AGINO(cur->bc_mp,
...@@ -4188,9 +4188,9 @@ TRACE_EVENT(xfs_btree_commit_ifakeroot, ...@@ -4188,9 +4188,9 @@ TRACE_EVENT(xfs_btree_commit_ifakeroot,
__entry->blocks = cur->bc_ino.ifake->if_blocks; __entry->blocks = cur->bc_ino.ifake->if_blocks;
__entry->whichfork = cur->bc_ino.whichfork; __entry->whichfork = cur->bc_ino.whichfork;
), ),
TP_printk("dev %d:%d btree %s agno 0x%x agino 0x%x whichfork %s levels %u blocks %u", TP_printk("dev %d:%d %sbt agno 0x%x agino 0x%x whichfork %s levels %u blocks %u",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->agno, __entry->agno,
__entry->agino, __entry->agino,
__print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS), __print_symbolic(__entry->whichfork, XFS_WHICHFORK_STRINGS),
...@@ -4207,7 +4207,7 @@ TRACE_EVENT(xfs_btree_bload_level_geometry, ...@@ -4207,7 +4207,7 @@ TRACE_EVENT(xfs_btree_bload_level_geometry,
blocks_with_extra), blocks_with_extra),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(unsigned int, level) __field(unsigned int, level)
__field(unsigned int, nlevels) __field(unsigned int, nlevels)
__field(uint64_t, nr_this_level) __field(uint64_t, nr_this_level)
...@@ -4218,7 +4218,7 @@ TRACE_EVENT(xfs_btree_bload_level_geometry, ...@@ -4218,7 +4218,7 @@ TRACE_EVENT(xfs_btree_bload_level_geometry,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = cur->bc_mp->m_super->s_dev; __entry->dev = cur->bc_mp->m_super->s_dev;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->level = level; __entry->level = level;
__entry->nlevels = cur->bc_nlevels; __entry->nlevels = cur->bc_nlevels;
__entry->nr_this_level = nr_this_level; __entry->nr_this_level = nr_this_level;
...@@ -4227,9 +4227,9 @@ TRACE_EVENT(xfs_btree_bload_level_geometry, ...@@ -4227,9 +4227,9 @@ TRACE_EVENT(xfs_btree_bload_level_geometry,
__entry->blocks = blocks; __entry->blocks = blocks;
__entry->blocks_with_extra = blocks_with_extra; __entry->blocks_with_extra = blocks_with_extra;
), ),
TP_printk("dev %d:%d btree %s level %u/%u nr_this_level %llu nr_per_block %u desired_npb %u blocks %llu blocks_with_extra %llu", TP_printk("dev %d:%d %sbt level %u/%u nr_this_level %llu nr_per_block %u desired_npb %u blocks %llu blocks_with_extra %llu",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->level, __entry->level,
__entry->nlevels, __entry->nlevels,
__entry->nr_this_level, __entry->nr_this_level,
...@@ -4246,7 +4246,7 @@ TRACE_EVENT(xfs_btree_bload_block, ...@@ -4246,7 +4246,7 @@ TRACE_EVENT(xfs_btree_bload_block,
TP_ARGS(cur, level, block_idx, nr_blocks, ptr, nr_records), TP_ARGS(cur, level, block_idx, nr_blocks, ptr, nr_records),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(xfs_btnum_t, btnum) __string(name, cur->bc_ops->name)
__field(unsigned int, level) __field(unsigned int, level)
__field(unsigned long long, block_idx) __field(unsigned long long, block_idx)
__field(unsigned long long, nr_blocks) __field(unsigned long long, nr_blocks)
...@@ -4256,7 +4256,7 @@ TRACE_EVENT(xfs_btree_bload_block, ...@@ -4256,7 +4256,7 @@ TRACE_EVENT(xfs_btree_bload_block,
), ),
TP_fast_assign( TP_fast_assign(
__entry->dev = cur->bc_mp->m_super->s_dev; __entry->dev = cur->bc_mp->m_super->s_dev;
__entry->btnum = cur->bc_btnum; __assign_str(name, cur->bc_ops->name);
__entry->level = level; __entry->level = level;
__entry->block_idx = block_idx; __entry->block_idx = block_idx;
__entry->nr_blocks = nr_blocks; __entry->nr_blocks = nr_blocks;
...@@ -4271,9 +4271,9 @@ TRACE_EVENT(xfs_btree_bload_block, ...@@ -4271,9 +4271,9 @@ TRACE_EVENT(xfs_btree_bload_block,
} }
__entry->nr_records = nr_records; __entry->nr_records = nr_records;
), ),
TP_printk("dev %d:%d btree %s level %u block %llu/%llu agno 0x%x agbno 0x%x recs %u", TP_printk("dev %d:%d %sbt level %u block %llu/%llu agno 0x%x agbno 0x%x recs %u",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
__print_symbolic(__entry->btnum, XFS_BTNUM_STRINGS), __get_str(name),
__entry->level, __entry->level,
__entry->block_idx, __entry->block_idx,
__entry->nr_blocks, __entry->nr_blocks,
......
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