1/* 2 * tracepoint-probe-sample2.c 3 * 4 * 2nd sample tracepoint probes. 5 */ 6 7#include <linux/module.h> 8#include <linux/fs.h> 9#include "tp-samples-trace.h" 10 11/* 12 * Here the caller only guarantees locking for struct file and struct inode. 13 * Locking must therefore be done in the probe to use the dentry. 14 */ 15static void probe_subsys_event(struct inode *inode, struct file *file) 16{ 17 printk(KERN_INFO "Event is encountered with inode number %lu\n", 18 inode->i_ino); 19} 20 21static int __init tp_sample_trace_init(void) 22{ 23 int ret; 24 25 ret = register_trace_subsys_event(probe_subsys_event); 26 WARN_ON(ret); 27 28 return 0; 29} 30 31module_init(tp_sample_trace_init); 32 33static void __exit tp_sample_trace_exit(void) 34{ 35 unregister_trace_subsys_event(probe_subsys_event); 36 tracepoint_synchronize_unregister(); 37} 38 39module_exit(tp_sample_trace_exit); 40 41MODULE_LICENSE("GPL"); 42MODULE_AUTHOR("Mathieu Desnoyers"); 43MODULE_DESCRIPTION("Tracepoint Probes Samples"); 44