forked from Minki/linux
xfs: fix xfs_fsblock_t tracing
Using a static buffer in xfs_fmtfsblock means we can corrupt traces if multiple CPUs hit this code path at the same. Just remove xfs_fmtfsblock for now and print the block number purely numerical. If we want the NULLFSBLOCK and NULLSTARTBLOCK formatting back the best way would be a decoding plugin in the trace-cmd userspace command. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <david@fromorbit.com> Signed-off-by: Alex Elder <aelder@sgi.com>
This commit is contained in:
parent
024910cbac
commit
f7008d0aeb
@ -51,22 +51,6 @@
|
||||
#include "quota/xfs_dquot_item.h"
|
||||
#include "quota/xfs_dquot.h"
|
||||
|
||||
/*
|
||||
* Format fsblock number into a static buffer & return it.
|
||||
*/
|
||||
STATIC char *xfs_fmtfsblock(xfs_fsblock_t bno)
|
||||
{
|
||||
static char rval[50];
|
||||
|
||||
if (bno == NULLFSBLOCK)
|
||||
sprintf(rval, "NULLFSBLOCK");
|
||||
else if (isnullstartblock(bno))
|
||||
sprintf(rval, "NULLSTARTBLOCK(%lld)", startblockval(bno));
|
||||
else
|
||||
sprintf(rval, "%lld", (xfs_dfsbno_t)bno);
|
||||
return rval;
|
||||
}
|
||||
|
||||
/*
|
||||
* We include this last to have the helpers above available for the trace
|
||||
* event implementations.
|
||||
|
@ -197,13 +197,13 @@ TRACE_EVENT(xfs_iext_insert,
|
||||
__entry->caller_ip = caller_ip;
|
||||
),
|
||||
TP_printk("dev %d:%d ino 0x%llx state %s idx %ld "
|
||||
"offset %lld block %s count %lld flag %d caller %pf",
|
||||
"offset %lld block %lld count %lld flag %d caller %pf",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->ino,
|
||||
__print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS),
|
||||
(long)__entry->idx,
|
||||
__entry->startoff,
|
||||
xfs_fmtfsblock(__entry->startblock),
|
||||
(__int64_t)__entry->startblock,
|
||||
__entry->blockcount,
|
||||
__entry->state,
|
||||
(char *)__entry->caller_ip)
|
||||
@ -241,13 +241,13 @@ DECLARE_EVENT_CLASS(xfs_bmap_class,
|
||||
__entry->caller_ip = caller_ip;
|
||||
),
|
||||
TP_printk("dev %d:%d ino 0x%llx state %s idx %ld "
|
||||
"offset %lld block %s count %lld flag %d caller %pf",
|
||||
"offset %lld block %lld count %lld flag %d caller %pf",
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev),
|
||||
__entry->ino,
|
||||
__print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS),
|
||||
(long)__entry->idx,
|
||||
__entry->startoff,
|
||||
xfs_fmtfsblock(__entry->startblock),
|
||||
(__int64_t)__entry->startblock,
|
||||
__entry->blockcount,
|
||||
__entry->state,
|
||||
(char *)__entry->caller_ip)
|
||||
@ -881,7 +881,7 @@ TRACE_EVENT(name, \
|
||||
), \
|
||||
TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " \
|
||||
"offset 0x%llx count %zd flags %s " \
|
||||
"startoff 0x%llx startblock %s blockcount 0x%llx", \
|
||||
"startoff 0x%llx startblock %lld blockcount 0x%llx", \
|
||||
MAJOR(__entry->dev), MINOR(__entry->dev), \
|
||||
__entry->ino, \
|
||||
__entry->size, \
|
||||
@ -890,7 +890,7 @@ TRACE_EVENT(name, \
|
||||
__entry->count, \
|
||||
__print_flags(__entry->flags, "|", BMAPI_FLAGS), \
|
||||
__entry->startoff, \
|
||||
xfs_fmtfsblock(__entry->startblock), \
|
||||
(__int64_t)__entry->startblock, \
|
||||
__entry->blockcount) \
|
||||
)
|
||||
DEFINE_IOMAP_EVENT(xfs_iomap_enter);
|
||||
|
Loading…
Reference in New Issue
Block a user