blob: e8c3e216a0a7bdbb7302a8856caeaea725d58380 [file] [log] [blame]
xjb04a4022021-11-25 15:01:52 +08001/* SPDX-License-Identifier: GPL-2.0 */
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM namei
4
5#if !defined(_TRACE_INODEPATH_H) || defined(TRACE_HEADER_MULTI_READ)
6#define _TRACE_INODEPATH_H
7
8#include <linux/types.h>
9#include <linux/tracepoint.h>
10#include <linux/mm.h>
11#include <linux/memcontrol.h>
12#include <linux/device.h>
13#include <linux/kdev_t.h>
14
15TRACE_EVENT(inodepath,
16 TP_PROTO(struct inode *inode, char *path),
17
18 TP_ARGS(inode, path),
19
20 TP_STRUCT__entry(
21 /* dev_t and ino_t are arch dependent bit width
22 * so just use 64-bit
23 */
24 __field(unsigned long, ino)
25 __field(unsigned long, dev)
26 __string(path, path)
27 ),
28
29 TP_fast_assign(
30 __entry->ino = inode->i_ino;
31 __entry->dev = inode->i_sb->s_dev;
32 __assign_str(path, path);
33 ),
34
35 TP_printk("dev %d:%d ino=%lu path=%s",
36 MAJOR(__entry->dev), MINOR(__entry->dev),
37 __entry->ino, __get_str(path))
38);
39#endif /* _TRACE_INODEPATH_H */
40
41/* This part must be outside protection */
42#include <trace/define_trace.h>