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

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
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -959,18 +959,16 @@ TRACE_EVENT(xfile_create,
	TP_STRUCT__entry(
		__field(dev_t, dev)
		__field(unsigned long, ino)
		__array(char, pathname, 256)
		__array(char, pathname, MAXNAMELEN)
	),
	TP_fast_assign(
		char		pathname[257];
		char		*path;

		__entry->ino = file_inode(xf->file)->i_ino;
		memset(pathname, 0, sizeof(pathname));
		path = file_path(xf->file, pathname, sizeof(pathname) - 1);
		path = file_path(xf->file, __entry->pathname, MAXNAMELEN);
		if (IS_ERR(path))
			path = "(unknown)";
		strncpy(__entry->pathname, path, sizeof(__entry->pathname));
			strncpy(__entry->pathname, "(unknown)",
					sizeof(__entry->pathname));
	),
	TP_printk("xfino 0x%lx path '%s'",
		  __entry->ino,
+4 −6
Original line number Diff line number Diff line
@@ -4715,20 +4715,18 @@ TRACE_EVENT(xmbuf_create,
	TP_STRUCT__entry(
		__field(dev_t, dev)
		__field(unsigned long, ino)
		__array(char, pathname, 256)
		__array(char, pathname, MAXNAMELEN)
	),
	TP_fast_assign(
		char		pathname[257];
		char		*path;
		struct file	*file = btp->bt_file;

		__entry->dev = btp->bt_mount->m_super->s_dev;
		__entry->ino = file_inode(file)->i_ino;
		memset(pathname, 0, sizeof(pathname));
		path = file_path(file, pathname, sizeof(pathname) - 1);
		path = file_path(file, __entry->pathname, MAXNAMELEN);
		if (IS_ERR(path))
			path = "(unknown)";
		strncpy(__entry->pathname, path, sizeof(__entry->pathname));
			strncpy(__entry->pathname, "(unknown)",
					sizeof(__entry->pathname));
	),
	TP_printk("dev %d:%d xmino 0x%lx path '%s'",
		  MAJOR(__entry->dev), MINOR(__entry->dev),