1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (c) 2024 Trond Myklebust <[email protected]>
4  * Copyright (C) 2024 Mike Snitzer <[email protected]>
5  */
6 #undef TRACE_SYSTEM
7 #define TRACE_SYSTEM nfs_localio
8 
9 #if !defined(_TRACE_NFS_COMMON_LOCALIO_H) || defined(TRACE_HEADER_MULTI_READ)
10 #define _TRACE_NFS_COMMON_LOCALIO_H
11 
12 #include <linux/tracepoint.h>
13 
14 #include <trace/misc/fs.h>
15 #include <trace/misc/nfs.h>
16 #include <trace/misc/sunrpc.h>
17 
18 DECLARE_EVENT_CLASS(nfs_local_client_event,
19 		TP_PROTO(
20 			const struct nfs_client *clp
21 		),
22 
23 		TP_ARGS(clp),
24 
25 		TP_STRUCT__entry(
26 			__field(unsigned int, protocol)
27 			__string(server, clp->cl_hostname)
28 		),
29 
30 		TP_fast_assign(
31 			__entry->protocol = clp->rpc_ops->version;
32 			__assign_str(server);
33 		),
34 
35 		TP_printk(
36 			"server=%s NFSv%u", __get_str(server), __entry->protocol
37 		)
38 );
39 
40 #define DEFINE_NFS_LOCAL_CLIENT_EVENT(name) \
41 	DEFINE_EVENT(nfs_local_client_event, name, \
42 			TP_PROTO( \
43 				const struct nfs_client *clp \
44 			), \
45 			TP_ARGS(clp))
46 
47 DEFINE_NFS_LOCAL_CLIENT_EVENT(nfs_localio_enable_client);
48 DEFINE_NFS_LOCAL_CLIENT_EVENT(nfs_localio_disable_client);
49 
50 #endif /* _TRACE_NFS_COMMON_LOCALIO_H */
51 
52 #undef TRACE_INCLUDE_PATH
53 #define TRACE_INCLUDE_PATH .
54 #define TRACE_INCLUDE_FILE localio_trace
55 /* This part must be outside protection */
56 #include <trace/define_trace.h>
57