mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-08 22:32:55 +00:00
xfs: pass the pag to the xrep_newbt_extent_class tracepoints
This requires moving a few of the callsites a little bit to ensure that we already have the reference, but allows for the decoding to only happen when tracing is actually enabled, and cleans up the callsites a bit. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
934dde65b2
commit
dc8df7e382
@ -484,8 +484,8 @@ xrep_abt_reserve_space(
|
||||
ASSERT(arec.ar_blockcount <= UINT_MAX);
|
||||
len = min_t(unsigned int, arec.ar_blockcount, desired);
|
||||
|
||||
trace_xrep_newbt_alloc_ag_blocks(sc->mp, sc->sa.pag->pag_agno,
|
||||
arec.ar_startblock, len, XFS_RMAP_OWN_AG);
|
||||
trace_xrep_newbt_alloc_ag_blocks(sc->sa.pag, arec.ar_startblock,
|
||||
len, XFS_RMAP_OWN_AG);
|
||||
|
||||
error = xrep_newbt_add_extent(&ra->new_bnobt, sc->sa.pag,
|
||||
arec.ar_startblock, len);
|
||||
@ -554,8 +554,8 @@ xrep_abt_dispose_one(
|
||||
if (free_aglen == 0)
|
||||
return 0;
|
||||
|
||||
trace_xrep_newbt_free_blocks(sc->mp, resv->pag->pag_agno, free_agbno,
|
||||
free_aglen, ra->new_bnobt.oinfo.oi_owner);
|
||||
trace_xrep_newbt_free_blocks(resv->pag, free_agbno, free_aglen,
|
||||
ra->new_bnobt.oinfo.oi_owner);
|
||||
|
||||
error = __xfs_free_extent(sc->tp, resv->pag, free_agbno, free_aglen,
|
||||
&ra->new_bnobt.oinfo, XFS_AG_RESV_IGNORE, true);
|
||||
|
@ -250,16 +250,15 @@ xrep_newbt_alloc_ag_blocks(
|
||||
return -ENOSPC;
|
||||
|
||||
agno = XFS_FSB_TO_AGNO(mp, args.fsbno);
|
||||
|
||||
trace_xrep_newbt_alloc_ag_blocks(mp, agno,
|
||||
XFS_FSB_TO_AGBNO(mp, args.fsbno), args.len,
|
||||
xnr->oinfo.oi_owner);
|
||||
|
||||
if (agno != sc->sa.pag->pag_agno) {
|
||||
ASSERT(agno == sc->sa.pag->pag_agno);
|
||||
return -EFSCORRUPTED;
|
||||
}
|
||||
|
||||
trace_xrep_newbt_alloc_ag_blocks(sc->sa.pag,
|
||||
XFS_FSB_TO_AGBNO(mp, args.fsbno), args.len,
|
||||
xnr->oinfo.oi_owner);
|
||||
|
||||
error = xrep_newbt_add_blocks(xnr, sc->sa.pag, &args);
|
||||
if (error)
|
||||
return error;
|
||||
@ -325,16 +324,16 @@ xrep_newbt_alloc_file_blocks(
|
||||
|
||||
agno = XFS_FSB_TO_AGNO(mp, args.fsbno);
|
||||
|
||||
trace_xrep_newbt_alloc_file_blocks(mp, agno,
|
||||
XFS_FSB_TO_AGBNO(mp, args.fsbno), args.len,
|
||||
xnr->oinfo.oi_owner);
|
||||
|
||||
pag = xfs_perag_get(mp, agno);
|
||||
if (!pag) {
|
||||
ASSERT(0);
|
||||
return -EFSCORRUPTED;
|
||||
}
|
||||
|
||||
trace_xrep_newbt_alloc_file_blocks(pag,
|
||||
XFS_FSB_TO_AGBNO(mp, args.fsbno), args.len,
|
||||
xnr->oinfo.oi_owner);
|
||||
|
||||
error = xrep_newbt_add_blocks(xnr, pag, &args);
|
||||
xfs_perag_put(pag);
|
||||
if (error)
|
||||
@ -383,8 +382,8 @@ xrep_newbt_free_extent(
|
||||
* space reservation, let the existing EFI free the entire
|
||||
* space extent.
|
||||
*/
|
||||
trace_xrep_newbt_free_blocks(sc->mp, resv->pag->pag_agno,
|
||||
free_agbno, free_aglen, xnr->oinfo.oi_owner);
|
||||
trace_xrep_newbt_free_blocks(resv->pag, free_agbno, free_aglen,
|
||||
xnr->oinfo.oi_owner);
|
||||
xfs_alloc_commit_autoreap(sc->tp, &resv->autoreap);
|
||||
return 1;
|
||||
}
|
||||
@ -401,8 +400,8 @@ xrep_newbt_free_extent(
|
||||
if (free_aglen == 0)
|
||||
return 0;
|
||||
|
||||
trace_xrep_newbt_free_blocks(sc->mp, resv->pag->pag_agno, free_agbno,
|
||||
free_aglen, xnr->oinfo.oi_owner);
|
||||
trace_xrep_newbt_free_blocks(resv->pag, free_agbno, free_aglen,
|
||||
xnr->oinfo.oi_owner);
|
||||
|
||||
ASSERT(xnr->resv != XFS_AG_RESV_AGFL);
|
||||
ASSERT(xnr->resv != XFS_AG_RESV_IGNORE);
|
||||
@ -514,7 +513,6 @@ xrep_newbt_claim_block(
|
||||
union xfs_btree_ptr *ptr)
|
||||
{
|
||||
struct xrep_newbt_resv *resv;
|
||||
struct xfs_mount *mp = cur->bc_mp;
|
||||
xfs_agblock_t agbno;
|
||||
|
||||
/*
|
||||
@ -539,8 +537,7 @@ xrep_newbt_claim_block(
|
||||
if (resv->used == resv->len)
|
||||
list_move_tail(&resv->list, &xnr->resv_list);
|
||||
|
||||
trace_xrep_newbt_claim_block(mp, resv->pag->pag_agno, agbno, 1,
|
||||
xnr->oinfo.oi_owner);
|
||||
trace_xrep_newbt_claim_block(resv->pag, agbno, 1, xnr->oinfo.oi_owner);
|
||||
|
||||
if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN)
|
||||
ptr->l = cpu_to_be64(xfs_agbno_to_fsb(resv->pag, agbno));
|
||||
|
@ -2272,10 +2272,9 @@ TRACE_EVENT(xrep_reset_counters,
|
||||
)
|
||||
|
||||
DECLARE_EVENT_CLASS(xrep_newbt_extent_class,
|
||||
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
|
||||
xfs_agblock_t agbno, xfs_extlen_t len,
|
||||
int64_t owner),
|
||||
TP_ARGS(mp, agno, agbno, len, owner),
|
||||
TP_PROTO(const struct xfs_perag *pag, xfs_agblock_t agbno,
|
||||
xfs_extlen_t len, int64_t owner),
|
||||
TP_ARGS(pag, agbno, len, owner),
|
||||
TP_STRUCT__entry(
|
||||
__field(dev_t, dev)
|
||||
__field(xfs_agnumber_t, agno)
|
||||
@ -2284,8 +2283,8 @@ DECLARE_EVENT_CLASS(xrep_newbt_extent_class,
|
||||
__field(int64_t, owner)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->dev = mp->m_super->s_dev;
|
||||
__entry->agno = agno;
|
||||
__entry->dev = pag->pag_mount->m_super->s_dev;
|
||||
__entry->agno = pag->pag_agno;
|
||||
__entry->agbno = agbno;
|
||||
__entry->len = len;
|
||||
__entry->owner = owner;
|
||||
@ -2299,10 +2298,9 @@ DECLARE_EVENT_CLASS(xrep_newbt_extent_class,
|
||||
);
|
||||
#define DEFINE_NEWBT_EXTENT_EVENT(name) \
|
||||
DEFINE_EVENT(xrep_newbt_extent_class, name, \
|
||||
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \
|
||||
xfs_agblock_t agbno, xfs_extlen_t len, \
|
||||
TP_PROTO(struct xfs_perag *pag, xfs_agblock_t agbno, xfs_extlen_t len, \
|
||||
int64_t owner), \
|
||||
TP_ARGS(mp, agno, agbno, len, owner))
|
||||
TP_ARGS(pag, agbno, len, owner))
|
||||
DEFINE_NEWBT_EXTENT_EVENT(xrep_newbt_alloc_ag_blocks);
|
||||
DEFINE_NEWBT_EXTENT_EVENT(xrep_newbt_alloc_file_blocks);
|
||||
DEFINE_NEWBT_EXTENT_EVENT(xrep_newbt_free_blocks);
|
||||
|
Loading…
Reference in New Issue
Block a user