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