[PATCH 4.19 47/95] erofs: fix up erofs_lookup tracepoint

From: Greg Kroah-Hartman
Date: Mon Oct 04 2021 - 09:10:05 EST


From: Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx>

commit 93368aab0efc87288cac65e99c9ed2e0ffc9e7d0 upstream.

Fix up a misuse that the filename pointer isn't always valid in
the ring buffer, and we should copy the content instead.

Link: https://lore.kernel.org/r/20210921143531.81356-1-hsiangkao@xxxxxxxxxxxxxxxxx
Fixes: 13f06f48f7bf ("staging: erofs: support tracepoint")
Cc: stable@xxxxxxxxxxxxxxx # 4.19+
Reviewed-by: Chao Yu <chao@xxxxxxxxxx>
[ Gao Xiang: resolve trivial conflicts for 4.19.y. ]
Signed-off-by: Gao Xiang <hsiangkao@xxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
drivers/staging/erofs/include/trace/events/erofs.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/staging/erofs/include/trace/events/erofs.h
+++ b/drivers/staging/erofs/include/trace/events/erofs.h
@@ -32,20 +32,20 @@ TRACE_EVENT(erofs_lookup,
TP_STRUCT__entry(
__field(dev_t, dev )
__field(erofs_nid_t, nid )
- __field(const char *, name )
+ __string(name, dentry->d_name.name )
__field(unsigned int, flags )
),

TP_fast_assign(
__entry->dev = dir->i_sb->s_dev;
__entry->nid = EROFS_V(dir)->nid;
- __entry->name = dentry->d_name.name;
+ __assign_str(name, dentry->d_name.name);
__entry->flags = flags;
),

TP_printk("dev = (%d,%d), pnid = %llu, name:%s, flags:%x",
show_dev_nid(__entry),
- __entry->name,
+ __get_str(name),
__entry->flags)
);