if (fa)
                return xfs_refcount_complain_bad_rec(cur, fa, irec);
 
-       trace_xfs_refcount_get(cur->bc_mp, cur->bc_ag.pag->pag_agno, irec);
+       trace_xfs_refcount_get(cur, irec);
        return 0;
 }
 
        uint32_t                start;
        int                     error;
 
-       trace_xfs_refcount_update(cur->bc_mp, cur->bc_ag.pag->pag_agno, irec);
+       trace_xfs_refcount_update(cur, irec);
 
        start = xfs_refcount_encode_startblock(irec->rc_startblock,
                        irec->rc_domain);
 {
        int                             error;
 
-       trace_xfs_refcount_insert(cur->bc_mp, cur->bc_ag.pag->pag_agno, irec);
+       trace_xfs_refcount_insert(cur, irec);
 
        cur->bc_rec.rc.rc_startblock = irec->rc_startblock;
        cur->bc_rec.rc.rc_blockcount = irec->rc_blockcount;
                error = -EFSCORRUPTED;
                goto out_error;
        }
-       trace_xfs_refcount_delete(cur->bc_mp, cur->bc_ag.pag->pag_agno, &irec);
+       trace_xfs_refcount_delete(cur, &irec);
        error = xfs_btree_delete(cur, i);
        if (XFS_IS_CORRUPT(cur->bc_mp, *i != 1)) {
                xfs_btree_mark_sick(cur);
                return 0;
 
        *shape_changed = true;
-       trace_xfs_refcount_split_extent(cur->bc_mp, cur->bc_ag.pag->pag_agno,
-                       &rcext, agbno);
+       trace_xfs_refcount_split_extent(cur, &rcext, agbno);
 
        /* Establish the right extent. */
        tmp = rcext;
        int                             error;
        int                             found_rec;
 
-       trace_xfs_refcount_merge_center_extents(cur->bc_mp,
-                       cur->bc_ag.pag->pag_agno, left, center, right);
+       trace_xfs_refcount_merge_center_extents(cur, left, center, right);
 
        ASSERT(left->rc_domain == center->rc_domain);
        ASSERT(right->rc_domain == center->rc_domain);
        int                             error;
        int                             found_rec;
 
-       trace_xfs_refcount_merge_left_extent(cur->bc_mp,
-                       cur->bc_ag.pag->pag_agno, left, cleft);
+       trace_xfs_refcount_merge_left_extent(cur, left, cleft);
 
        ASSERT(left->rc_domain == cleft->rc_domain);
 
        int                             error;
        int                             found_rec;
 
-       trace_xfs_refcount_merge_right_extent(cur->bc_mp,
-                       cur->bc_ag.pag->pag_agno, cright, right);
+       trace_xfs_refcount_merge_right_extent(cur, cright, right);
 
        ASSERT(right->rc_domain == cright->rc_domain);
 
                cleft->rc_refcount = 1;
                cleft->rc_domain = domain;
        }
-       trace_xfs_refcount_find_left_extent(cur->bc_mp, cur->bc_ag.pag->pag_agno,
-                       left, cleft, agbno);
+       trace_xfs_refcount_find_left_extent(cur, left, cleft, agbno);
        return error;
 
 out_error:
                cright->rc_refcount = 1;
                cright->rc_domain = domain;
        }
-       trace_xfs_refcount_find_right_extent(cur->bc_mp, cur->bc_ag.pag->pag_agno,
-                       cright, right, agbno + aglen);
+       trace_xfs_refcount_find_right_extent(cur, cright, right,
+                       agbno + aglen);
        return error;
 
 out_error:
                        tmp.rc_refcount = 1 + adj;
                        tmp.rc_domain = XFS_REFC_DOMAIN_SHARED;
 
-                       trace_xfs_refcount_modify_extent(cur->bc_mp,
-                                       cur->bc_ag.pag->pag_agno, &tmp);
+                       trace_xfs_refcount_modify_extent(cur, &tmp);
 
                        /*
                         * Either cover the hole (increment) or
                if (ext.rc_refcount == MAXREFCOUNT)
                        goto skip;
                ext.rc_refcount += adj;
-               trace_xfs_refcount_modify_extent(cur->bc_mp,
-                               cur->bc_ag.pag->pag_agno, &ext);
+               trace_xfs_refcount_modify_extent(cur, &ext);
                cur->bc_refc.nr_ops++;
                if (ext.rc_refcount > 1) {
                        error = xfs_refcount_update(cur, &ext);
                tmp.rc_refcount = 1;
                tmp.rc_domain = XFS_REFC_DOMAIN_COW;
 
-               trace_xfs_refcount_modify_extent(cur->bc_mp,
-                               cur->bc_ag.pag->pag_agno, &tmp);
+               trace_xfs_refcount_modify_extent(cur, &tmp);
 
                error = xfs_refcount_insert(cur, &tmp,
                                &found_tmp);
                }
 
                ext.rc_refcount = 0;
-               trace_xfs_refcount_modify_extent(cur->bc_mp,
-                               cur->bc_ag.pag->pag_agno, &ext);
+               trace_xfs_refcount_modify_extent(cur, &ext);
                error = xfs_refcount_delete(cur, &found_rec);
                if (error)
                        goto out_error;
                if (error)
                        goto out_free;
 
-               trace_xfs_refcount_recover_extent(mp, pag->pag_agno,
-                               &rr->rr_rrec);
-
                /* Free the orphan record */
                fsb = XFS_AGB_TO_FSB(mp, pag->pag_agno,
                                rr->rr_rrec.rc_startblock);
 
 
 /* single-rcext tracepoint class */
 DECLARE_EVENT_CLASS(xfs_refcount_extent_class,
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
-                struct xfs_refcount_irec *irec),
-       TP_ARGS(mp, agno, irec),
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *irec),
+       TP_ARGS(cur, irec),
        TP_STRUCT__entry(
                __field(dev_t, dev)
                __field(xfs_agnumber_t, agno)
                __field(xfs_nlink_t, refcount)
        ),
        TP_fast_assign(
-               __entry->dev = mp->m_super->s_dev;
-               __entry->agno = agno;
+               __entry->dev = cur->bc_mp->m_super->s_dev;
+               __entry->agno = cur->bc_ag.pag->pag_agno;
                __entry->domain = irec->rc_domain;
                __entry->startblock = irec->rc_startblock;
                __entry->blockcount = irec->rc_blockcount;
 
 #define DEFINE_REFCOUNT_EXTENT_EVENT(name) \
 DEFINE_EVENT(xfs_refcount_extent_class, name, \
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
-                struct xfs_refcount_irec *irec), \
-       TP_ARGS(mp, agno, irec))
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *irec), \
+       TP_ARGS(cur, irec))
 
 /* single-rcext and an agbno tracepoint class */
 DECLARE_EVENT_CLASS(xfs_refcount_extent_at_class,
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
-                struct xfs_refcount_irec *irec, xfs_agblock_t agbno),
-       TP_ARGS(mp, agno, irec, agbno),
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *irec,
+                xfs_agblock_t agbno),
+       TP_ARGS(cur, irec, agbno),
        TP_STRUCT__entry(
                __field(dev_t, dev)
                __field(xfs_agnumber_t, agno)
                __field(xfs_agblock_t, agbno)
        ),
        TP_fast_assign(
-               __entry->dev = mp->m_super->s_dev;
-               __entry->agno = agno;
+               __entry->dev = cur->bc_mp->m_super->s_dev;
+               __entry->agno = cur->bc_ag.pag->pag_agno;
                __entry->domain = irec->rc_domain;
                __entry->startblock = irec->rc_startblock;
                __entry->blockcount = irec->rc_blockcount;
 
 #define DEFINE_REFCOUNT_EXTENT_AT_EVENT(name) \
 DEFINE_EVENT(xfs_refcount_extent_at_class, name, \
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
-                struct xfs_refcount_irec *irec, xfs_agblock_t agbno), \
-       TP_ARGS(mp, agno, irec, agbno))
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *irec, \
+                xfs_agblock_t agbno), \
+       TP_ARGS(cur, irec, agbno))
 
 /* double-rcext tracepoint class */
 DECLARE_EVENT_CLASS(xfs_refcount_double_extent_class,
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
-                struct xfs_refcount_irec *i1, struct xfs_refcount_irec *i2),
-       TP_ARGS(mp, agno, i1, i2),
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *i1,
+               struct xfs_refcount_irec *i2),
+       TP_ARGS(cur, i1, i2),
        TP_STRUCT__entry(
                __field(dev_t, dev)
                __field(xfs_agnumber_t, agno)
                __field(xfs_nlink_t, i2_refcount)
        ),
        TP_fast_assign(
-               __entry->dev = mp->m_super->s_dev;
-               __entry->agno = agno;
+               __entry->dev = cur->bc_mp->m_super->s_dev;
+               __entry->agno = cur->bc_ag.pag->pag_agno;
                __entry->i1_domain = i1->rc_domain;
                __entry->i1_startblock = i1->rc_startblock;
                __entry->i1_blockcount = i1->rc_blockcount;
 
 #define DEFINE_REFCOUNT_DOUBLE_EXTENT_EVENT(name) \
 DEFINE_EVENT(xfs_refcount_double_extent_class, name, \
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
-                struct xfs_refcount_irec *i1, struct xfs_refcount_irec *i2), \
-       TP_ARGS(mp, agno, i1, i2))
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *i1, \
+                struct xfs_refcount_irec *i2), \
+       TP_ARGS(cur, i1, i2))
 
 /* double-rcext and an agbno tracepoint class */
 DECLARE_EVENT_CLASS(xfs_refcount_double_extent_at_class,
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
-                struct xfs_refcount_irec *i1, struct xfs_refcount_irec *i2,
-                xfs_agblock_t agbno),
-       TP_ARGS(mp, agno, i1, i2, agbno),
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *i1,
+                struct xfs_refcount_irec *i2, xfs_agblock_t agbno),
+       TP_ARGS(cur, i1, i2, agbno),
        TP_STRUCT__entry(
                __field(dev_t, dev)
                __field(xfs_agnumber_t, agno)
                __field(xfs_agblock_t, agbno)
        ),
        TP_fast_assign(
-               __entry->dev = mp->m_super->s_dev;
-               __entry->agno = agno;
+               __entry->dev = cur->bc_mp->m_super->s_dev;
+               __entry->agno = cur->bc_ag.pag->pag_agno;
                __entry->i1_domain = i1->rc_domain;
                __entry->i1_startblock = i1->rc_startblock;
                __entry->i1_blockcount = i1->rc_blockcount;
 
 #define DEFINE_REFCOUNT_DOUBLE_EXTENT_AT_EVENT(name) \
 DEFINE_EVENT(xfs_refcount_double_extent_at_class, name, \
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
-                struct xfs_refcount_irec *i1, struct xfs_refcount_irec *i2, \
-                xfs_agblock_t agbno), \
-       TP_ARGS(mp, agno, i1, i2, agbno))
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *i1, \
+               struct xfs_refcount_irec *i2, xfs_agblock_t agbno), \
+       TP_ARGS(cur, i1, i2, agbno))
 
 /* triple-rcext tracepoint class */
 DECLARE_EVENT_CLASS(xfs_refcount_triple_extent_class,
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
-                struct xfs_refcount_irec *i1, struct xfs_refcount_irec *i2,
-                struct xfs_refcount_irec *i3),
-       TP_ARGS(mp, agno, i1, i2, i3),
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *i1,
+               struct xfs_refcount_irec *i2, struct xfs_refcount_irec *i3),
+       TP_ARGS(cur, i1, i2, i3),
        TP_STRUCT__entry(
                __field(dev_t, dev)
                __field(xfs_agnumber_t, agno)
                __field(xfs_nlink_t, i3_refcount)
        ),
        TP_fast_assign(
-               __entry->dev = mp->m_super->s_dev;
-               __entry->agno = agno;
+               __entry->dev = cur->bc_mp->m_super->s_dev;
+               __entry->agno = cur->bc_ag.pag->pag_agno;
                __entry->i1_domain = i1->rc_domain;
                __entry->i1_startblock = i1->rc_startblock;
                __entry->i1_blockcount = i1->rc_blockcount;
 
 #define DEFINE_REFCOUNT_TRIPLE_EXTENT_EVENT(name) \
 DEFINE_EVENT(xfs_refcount_triple_extent_class, name, \
-       TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
-                struct xfs_refcount_irec *i1, struct xfs_refcount_irec *i2, \
-                struct xfs_refcount_irec *i3), \
-       TP_ARGS(mp, agno, i1, i2, i3))
+       TP_PROTO(struct xfs_btree_cur *cur, struct xfs_refcount_irec *i1, \
+               struct xfs_refcount_irec *i2, struct xfs_refcount_irec *i3), \
+       TP_ARGS(cur, i1, i2, i3))
 
 /* refcount btree tracepoints */
 DEFINE_REFCOUNT_EXTENT_EVENT(xfs_refcount_get);
 DEFINE_REFCOUNT_EVENT(xfs_refcount_cow_decrease);
 DEFINE_REFCOUNT_TRIPLE_EXTENT_EVENT(xfs_refcount_merge_center_extents);
 DEFINE_REFCOUNT_EXTENT_EVENT(xfs_refcount_modify_extent);
-DEFINE_REFCOUNT_EXTENT_EVENT(xfs_refcount_recover_extent);
 DEFINE_REFCOUNT_EXTENT_AT_EVENT(xfs_refcount_split_extent);
 DEFINE_REFCOUNT_DOUBLE_EXTENT_EVENT(xfs_refcount_merge_left_extent);
 DEFINE_REFCOUNT_DOUBLE_EXTENT_EVENT(xfs_refcount_merge_right_extent);