Skip to content

Commit 934dde6

Browse files
Christoph HellwigDarrick J. Wong
authored andcommitted
xfs: pass the pag to the trace_xrep_calc_ag_resblks{,_btsize} trace points
This requires holding the pag refcount a little longer, 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 <[email protected]> Reviewed-by: Darrick J. Wong <[email protected]> Signed-off-by: Darrick J. Wong <[email protected]>
1 parent 618a27a commit 934dde6

File tree

2 files changed

+15
-16
lines changed

2 files changed

+15
-16
lines changed

fs/xfs/scrub/repair.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -331,10 +331,8 @@ xrep_calc_ag_resblks(
331331
freelen = aglen;
332332
usedlen = aglen;
333333
}
334-
xfs_perag_put(pag);
335334

336-
trace_xrep_calc_ag_resblks(mp, sm->sm_agno, icount, aglen,
337-
freelen, usedlen);
335+
trace_xrep_calc_ag_resblks(pag, icount, aglen, freelen, usedlen);
338336

339337
/*
340338
* Figure out how many blocks we'd need worst case to rebuild
@@ -372,8 +370,9 @@ xrep_calc_ag_resblks(
372370
rmapbt_sz = 0;
373371
}
374372

375-
trace_xrep_calc_ag_resblks_btsize(mp, sm->sm_agno, bnobt_sz,
376-
inobt_sz, rmapbt_sz, refcbt_sz);
373+
trace_xrep_calc_ag_resblks_btsize(pag, bnobt_sz, inobt_sz, rmapbt_sz,
374+
refcbt_sz);
375+
xfs_perag_put(pag);
377376

378377
return max(max(bnobt_sz, inobt_sz), max(rmapbt_sz, refcbt_sz));
379378
}

fs/xfs/scrub/trace.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2189,10 +2189,10 @@ TRACE_EVENT(xrep_findroot_block,
21892189
__entry->level)
21902190
)
21912191
TRACE_EVENT(xrep_calc_ag_resblks,
2192-
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
2193-
xfs_agino_t icount, xfs_agblock_t aglen, xfs_agblock_t freelen,
2192+
TP_PROTO(const struct xfs_perag *pag, xfs_agino_t icount,
2193+
xfs_agblock_t aglen, xfs_agblock_t freelen,
21942194
xfs_agblock_t usedlen),
2195-
TP_ARGS(mp, agno, icount, aglen, freelen, usedlen),
2195+
TP_ARGS(pag, icount, aglen, freelen, usedlen),
21962196
TP_STRUCT__entry(
21972197
__field(dev_t, dev)
21982198
__field(xfs_agnumber_t, agno)
@@ -2202,8 +2202,8 @@ TRACE_EVENT(xrep_calc_ag_resblks,
22022202
__field(xfs_agblock_t, usedlen)
22032203
),
22042204
TP_fast_assign(
2205-
__entry->dev = mp->m_super->s_dev;
2206-
__entry->agno = agno;
2205+
__entry->dev = pag->pag_mount->m_super->s_dev;
2206+
__entry->agno = pag->pag_agno;
22072207
__entry->icount = icount;
22082208
__entry->aglen = aglen;
22092209
__entry->freelen = freelen;
@@ -2218,10 +2218,10 @@ TRACE_EVENT(xrep_calc_ag_resblks,
22182218
__entry->usedlen)
22192219
)
22202220
TRACE_EVENT(xrep_calc_ag_resblks_btsize,
2221-
TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno,
2222-
xfs_agblock_t bnobt_sz, xfs_agblock_t inobt_sz,
2223-
xfs_agblock_t rmapbt_sz, xfs_agblock_t refcbt_sz),
2224-
TP_ARGS(mp, agno, bnobt_sz, inobt_sz, rmapbt_sz, refcbt_sz),
2221+
TP_PROTO(const struct xfs_perag *pag, xfs_agblock_t bnobt_sz,
2222+
xfs_agblock_t inobt_sz, xfs_agblock_t rmapbt_sz,
2223+
xfs_agblock_t refcbt_sz),
2224+
TP_ARGS(pag, bnobt_sz, inobt_sz, rmapbt_sz, refcbt_sz),
22252225
TP_STRUCT__entry(
22262226
__field(dev_t, dev)
22272227
__field(xfs_agnumber_t, agno)
@@ -2231,8 +2231,8 @@ TRACE_EVENT(xrep_calc_ag_resblks_btsize,
22312231
__field(xfs_agblock_t, refcbt_sz)
22322232
),
22332233
TP_fast_assign(
2234-
__entry->dev = mp->m_super->s_dev;
2235-
__entry->agno = agno;
2234+
__entry->dev = pag->pag_mount->m_super->s_dev;
2235+
__entry->agno = pag->pag_agno;
22362236
__entry->bnobt_sz = bnobt_sz;
22372237
__entry->inobt_sz = inobt_sz;
22382238
__entry->rmapbt_sz = rmapbt_sz;

0 commit comments

Comments
 (0)