Commit 19ebc8f8 authored by Darrick J. Wong's avatar Darrick J. Wong Committed by Chandan Babu R

xfs: fix file_path handling in tracepoints

Since file_path() takes the output buffer as one of its arguments, we
might as well have it format directly into the tracepoint's char array
instead of wasting stack space.

Fixes: 3934e8eb ("xfs: create a big array data structure")
Fixes: 5076a604 ("xfs: support in-memory buffer cache targets")
Reported-by: default avatarkernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202403290419.HPcyvqZu-lkp@intel.com/Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
parent 39c1ddb0
...@@ -959,18 +959,16 @@ TRACE_EVENT(xfile_create, ...@@ -959,18 +959,16 @@ TRACE_EVENT(xfile_create,
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(unsigned long, ino) __field(unsigned long, ino)
__array(char, pathname, 256) __array(char, pathname, MAXNAMELEN)
), ),
TP_fast_assign( TP_fast_assign(
char pathname[257];
char *path; char *path;
__entry->ino = file_inode(xf->file)->i_ino; __entry->ino = file_inode(xf->file)->i_ino;
memset(pathname, 0, sizeof(pathname)); path = file_path(xf->file, __entry->pathname, MAXNAMELEN);
path = file_path(xf->file, pathname, sizeof(pathname) - 1);
if (IS_ERR(path)) if (IS_ERR(path))
path = "(unknown)"; strncpy(__entry->pathname, "(unknown)",
strncpy(__entry->pathname, path, sizeof(__entry->pathname)); sizeof(__entry->pathname));
), ),
TP_printk("xfino 0x%lx path '%s'", TP_printk("xfino 0x%lx path '%s'",
__entry->ino, __entry->ino,
......
...@@ -4715,20 +4715,18 @@ TRACE_EVENT(xmbuf_create, ...@@ -4715,20 +4715,18 @@ TRACE_EVENT(xmbuf_create,
TP_STRUCT__entry( TP_STRUCT__entry(
__field(dev_t, dev) __field(dev_t, dev)
__field(unsigned long, ino) __field(unsigned long, ino)
__array(char, pathname, 256) __array(char, pathname, MAXNAMELEN)
), ),
TP_fast_assign( TP_fast_assign(
char pathname[257];
char *path; char *path;
struct file *file = btp->bt_file; struct file *file = btp->bt_file;
__entry->dev = btp->bt_mount->m_super->s_dev; __entry->dev = btp->bt_mount->m_super->s_dev;
__entry->ino = file_inode(file)->i_ino; __entry->ino = file_inode(file)->i_ino;
memset(pathname, 0, sizeof(pathname)); path = file_path(file, __entry->pathname, MAXNAMELEN);
path = file_path(file, pathname, sizeof(pathname) - 1);
if (IS_ERR(path)) if (IS_ERR(path))
path = "(unknown)"; strncpy(__entry->pathname, "(unknown)",
strncpy(__entry->pathname, path, sizeof(__entry->pathname)); sizeof(__entry->pathname));
), ),
TP_printk("dev %d:%d xmino 0x%lx path '%s'", TP_printk("dev %d:%d xmino 0x%lx path '%s'",
MAJOR(__entry->dev), MINOR(__entry->dev), MAJOR(__entry->dev), MINOR(__entry->dev),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment