xref: /linux/include/trace/events/fsnotify.h (revision 6b5b72ac2c6383e423144beb257f98359b966a3b)
1*ad4489dcSJeff Layton /* SPDX-License-Identifier: GPL-2.0 */
2*ad4489dcSJeff Layton #undef TRACE_SYSTEM
3*ad4489dcSJeff Layton #define TRACE_SYSTEM fsnotify
4*ad4489dcSJeff Layton 
5*ad4489dcSJeff Layton #if !defined(_TRACE_FSNOTIFY_H) || defined(TRACE_HEADER_MULTI_READ)
6*ad4489dcSJeff Layton #define _TRACE_FSNOTIFY_H
7*ad4489dcSJeff Layton 
8*ad4489dcSJeff Layton #include <linux/tracepoint.h>
9*ad4489dcSJeff Layton 
10*ad4489dcSJeff Layton #include <trace/misc/fsnotify.h>
11*ad4489dcSJeff Layton 
12*ad4489dcSJeff Layton TRACE_EVENT(fsnotify,
13*ad4489dcSJeff Layton 	TP_PROTO(__u32 mask, const void *data, int data_type,
14*ad4489dcSJeff Layton 		 struct inode *dir, const struct qstr *file_name,
15*ad4489dcSJeff Layton 		 struct inode *inode, u32 cookie),
16*ad4489dcSJeff Layton 
17*ad4489dcSJeff Layton 	TP_ARGS(mask, data, data_type, dir, file_name, inode, cookie),
18*ad4489dcSJeff Layton 
19*ad4489dcSJeff Layton 	TP_STRUCT__entry(
20*ad4489dcSJeff Layton 		__field(__u32, mask)
21*ad4489dcSJeff Layton 		__field(unsigned long, dir_ino)
22*ad4489dcSJeff Layton 		__field(unsigned long, ino)
23*ad4489dcSJeff Layton 		__field(dev_t, s_dev)
24*ad4489dcSJeff Layton 		__field(int, data_type)
25*ad4489dcSJeff Layton 		__field(u32, cookie)
26*ad4489dcSJeff Layton 		__string(file_name, file_name ? (const char *)file_name->name : "")
27*ad4489dcSJeff Layton 	),
28*ad4489dcSJeff Layton 
29*ad4489dcSJeff Layton 	TP_fast_assign(
30*ad4489dcSJeff Layton 		__entry->mask = mask;
31*ad4489dcSJeff Layton 		__entry->dir_ino = dir ? dir->i_ino : 0;
32*ad4489dcSJeff Layton 		__entry->ino = inode ? inode->i_ino : 0;
33*ad4489dcSJeff Layton 		__entry->s_dev = dir ? dir->i_sb->s_dev :
34*ad4489dcSJeff Layton 				 inode ? inode->i_sb->s_dev : 0;
35*ad4489dcSJeff Layton 		__entry->data_type = data_type;
36*ad4489dcSJeff Layton 		__entry->cookie = cookie;
37*ad4489dcSJeff Layton 		__assign_str(file_name);
38*ad4489dcSJeff Layton 	),
39*ad4489dcSJeff Layton 
40*ad4489dcSJeff Layton 	TP_printk("dev=%d:%d dir=%lu ino=%lu data_type=%d cookie=0x%x mask=0x%x %s name=%s",
41*ad4489dcSJeff Layton 		  MAJOR(__entry->s_dev), MINOR(__entry->s_dev),
42*ad4489dcSJeff Layton 		  __entry->dir_ino, __entry->ino,
43*ad4489dcSJeff Layton 		  __entry->data_type, __entry->cookie,
44*ad4489dcSJeff Layton 		  __entry->mask, show_fsnotify_mask(__entry->mask),
45*ad4489dcSJeff Layton 		  __get_str(file_name))
46*ad4489dcSJeff Layton );
47*ad4489dcSJeff Layton 
48*ad4489dcSJeff Layton #endif /* _TRACE_FSNOTIFY_H */
49*ad4489dcSJeff Layton 
50*ad4489dcSJeff Layton /* This part must be outside protection */
51*ad4489dcSJeff Layton #include <trace/define_trace.h>
52