xref: /openbmc/linux/fs/smb/client/trace.h (revision 7449d736)
138c8a9a5SSteve French /* SPDX-License-Identifier: GPL-2.0 */
238c8a9a5SSteve French /*
338c8a9a5SSteve French  *   Copyright (C) 2018, Microsoft Corporation.
438c8a9a5SSteve French  *
538c8a9a5SSteve French  *   Author(s): Steve French <stfrench@microsoft.com>
638c8a9a5SSteve French  */
738c8a9a5SSteve French #undef TRACE_SYSTEM
838c8a9a5SSteve French #define TRACE_SYSTEM cifs
938c8a9a5SSteve French 
1038c8a9a5SSteve French #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
1138c8a9a5SSteve French #define _CIFS_TRACE_H
1238c8a9a5SSteve French 
1338c8a9a5SSteve French #include <linux/tracepoint.h>
1438c8a9a5SSteve French #include <linux/net.h>
1538c8a9a5SSteve French #include <linux/inet.h>
1638c8a9a5SSteve French 
1738c8a9a5SSteve French /*
1838c8a9a5SSteve French  * Please use this 3-part article as a reference for writing new tracepoints:
1938c8a9a5SSteve French  * https://lwn.net/Articles/379903/
2038c8a9a5SSteve French  */
2138c8a9a5SSteve French 
2238c8a9a5SSteve French /* For logging errors in read or write */
2338c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_rw_err_class,
2438c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
2538c8a9a5SSteve French 		__u64	fid,
2638c8a9a5SSteve French 		__u32	tid,
2738c8a9a5SSteve French 		__u64	sesid,
2838c8a9a5SSteve French 		__u64	offset,
2938c8a9a5SSteve French 		__u32	len,
3038c8a9a5SSteve French 		int	rc),
3138c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
3238c8a9a5SSteve French 	TP_STRUCT__entry(
3338c8a9a5SSteve French 		__field(unsigned int, xid)
3438c8a9a5SSteve French 		__field(__u64, fid)
3538c8a9a5SSteve French 		__field(__u32, tid)
3638c8a9a5SSteve French 		__field(__u64, sesid)
3738c8a9a5SSteve French 		__field(__u64, offset)
3838c8a9a5SSteve French 		__field(__u32, len)
3938c8a9a5SSteve French 		__field(int, rc)
4038c8a9a5SSteve French 	),
4138c8a9a5SSteve French 	TP_fast_assign(
4238c8a9a5SSteve French 		__entry->xid = xid;
4338c8a9a5SSteve French 		__entry->fid = fid;
4438c8a9a5SSteve French 		__entry->tid = tid;
4538c8a9a5SSteve French 		__entry->sesid = sesid;
4638c8a9a5SSteve French 		__entry->offset = offset;
4738c8a9a5SSteve French 		__entry->len = len;
4838c8a9a5SSteve French 		__entry->rc = rc;
4938c8a9a5SSteve French 	),
5038c8a9a5SSteve French 	TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d",
5138c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
5238c8a9a5SSteve French 		__entry->offset, __entry->len, __entry->rc)
5338c8a9a5SSteve French )
5438c8a9a5SSteve French 
5538c8a9a5SSteve French #define DEFINE_SMB3_RW_ERR_EVENT(name)          \
5638c8a9a5SSteve French DEFINE_EVENT(smb3_rw_err_class, smb3_##name,    \
5738c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
5838c8a9a5SSteve French 		__u64	fid,			\
5938c8a9a5SSteve French 		__u32	tid,			\
6038c8a9a5SSteve French 		__u64	sesid,			\
6138c8a9a5SSteve French 		__u64	offset,			\
6238c8a9a5SSteve French 		__u32	len,			\
6338c8a9a5SSteve French 		int	rc),			\
6438c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
6538c8a9a5SSteve French 
6638c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(write_err);
6738c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(read_err);
6838c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(query_dir_err);
6938c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(zero_err);
7038c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(falloc_err);
7138c8a9a5SSteve French 
7238c8a9a5SSteve French 
7338c8a9a5SSteve French /* For logging successful read or write */
7438c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_rw_done_class,
7538c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
7638c8a9a5SSteve French 		__u64	fid,
7738c8a9a5SSteve French 		__u32	tid,
7838c8a9a5SSteve French 		__u64	sesid,
7938c8a9a5SSteve French 		__u64	offset,
8038c8a9a5SSteve French 		__u32	len),
8138c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, offset, len),
8238c8a9a5SSteve French 	TP_STRUCT__entry(
8338c8a9a5SSteve French 		__field(unsigned int, xid)
8438c8a9a5SSteve French 		__field(__u64, fid)
8538c8a9a5SSteve French 		__field(__u32, tid)
8638c8a9a5SSteve French 		__field(__u64, sesid)
8738c8a9a5SSteve French 		__field(__u64, offset)
8838c8a9a5SSteve French 		__field(__u32, len)
8938c8a9a5SSteve French 	),
9038c8a9a5SSteve French 	TP_fast_assign(
9138c8a9a5SSteve French 		__entry->xid = xid;
9238c8a9a5SSteve French 		__entry->fid = fid;
9338c8a9a5SSteve French 		__entry->tid = tid;
9438c8a9a5SSteve French 		__entry->sesid = sesid;
9538c8a9a5SSteve French 		__entry->offset = offset;
9638c8a9a5SSteve French 		__entry->len = len;
9738c8a9a5SSteve French 	),
9838c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
9938c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
10038c8a9a5SSteve French 		__entry->offset, __entry->len)
10138c8a9a5SSteve French )
10238c8a9a5SSteve French 
10338c8a9a5SSteve French #define DEFINE_SMB3_RW_DONE_EVENT(name)         \
10438c8a9a5SSteve French DEFINE_EVENT(smb3_rw_done_class, smb3_##name,   \
10538c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
10638c8a9a5SSteve French 		__u64	fid,			\
10738c8a9a5SSteve French 		__u32	tid,			\
10838c8a9a5SSteve French 		__u64	sesid,			\
10938c8a9a5SSteve French 		__u64	offset,			\
11038c8a9a5SSteve French 		__u32	len),			\
11138c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, offset, len))
11238c8a9a5SSteve French 
11338c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(write_enter);
11438c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(read_enter);
11538c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter);
11638c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(zero_enter);
11738c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(falloc_enter);
11838c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(write_done);
11938c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(read_done);
12038c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(query_dir_done);
12138c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(zero_done);
12238c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(falloc_done);
12338c8a9a5SSteve French 
12438c8a9a5SSteve French /* For logging successful set EOF (truncate) */
12538c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_eof_class,
12638c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
12738c8a9a5SSteve French 		__u64	fid,
12838c8a9a5SSteve French 		__u32	tid,
12938c8a9a5SSteve French 		__u64	sesid,
13038c8a9a5SSteve French 		__u64	offset),
13138c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, offset),
13238c8a9a5SSteve French 	TP_STRUCT__entry(
13338c8a9a5SSteve French 		__field(unsigned int, xid)
13438c8a9a5SSteve French 		__field(__u64, fid)
13538c8a9a5SSteve French 		__field(__u32, tid)
13638c8a9a5SSteve French 		__field(__u64, sesid)
13738c8a9a5SSteve French 		__field(__u64, offset)
13838c8a9a5SSteve French 	),
13938c8a9a5SSteve French 	TP_fast_assign(
14038c8a9a5SSteve French 		__entry->xid = xid;
14138c8a9a5SSteve French 		__entry->fid = fid;
14238c8a9a5SSteve French 		__entry->tid = tid;
14338c8a9a5SSteve French 		__entry->sesid = sesid;
14438c8a9a5SSteve French 		__entry->offset = offset;
14538c8a9a5SSteve French 	),
14638c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx",
14738c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
14838c8a9a5SSteve French 		__entry->offset)
14938c8a9a5SSteve French )
15038c8a9a5SSteve French 
15138c8a9a5SSteve French #define DEFINE_SMB3_EOF_EVENT(name)         \
15238c8a9a5SSteve French DEFINE_EVENT(smb3_eof_class, smb3_##name,   \
15338c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
15438c8a9a5SSteve French 		__u64	fid,			\
15538c8a9a5SSteve French 		__u32	tid,			\
15638c8a9a5SSteve French 		__u64	sesid,			\
15738c8a9a5SSteve French 		__u64	offset),		\
15838c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, offset))
15938c8a9a5SSteve French 
16038c8a9a5SSteve French DEFINE_SMB3_EOF_EVENT(set_eof);
16138c8a9a5SSteve French 
16238c8a9a5SSteve French /*
16338c8a9a5SSteve French  * For handle based calls other than read and write, and get/set info
16438c8a9a5SSteve French  */
16538c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_fd_class,
16638c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
16738c8a9a5SSteve French 		__u64	fid,
16838c8a9a5SSteve French 		__u32	tid,
16938c8a9a5SSteve French 		__u64	sesid),
17038c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid),
17138c8a9a5SSteve French 	TP_STRUCT__entry(
17238c8a9a5SSteve French 		__field(unsigned int, xid)
17338c8a9a5SSteve French 		__field(__u64, fid)
17438c8a9a5SSteve French 		__field(__u32, tid)
17538c8a9a5SSteve French 		__field(__u64, sesid)
17638c8a9a5SSteve French 	),
17738c8a9a5SSteve French 	TP_fast_assign(
17838c8a9a5SSteve French 		__entry->xid = xid;
17938c8a9a5SSteve French 		__entry->fid = fid;
18038c8a9a5SSteve French 		__entry->tid = tid;
18138c8a9a5SSteve French 		__entry->sesid = sesid;
18238c8a9a5SSteve French 	),
18338c8a9a5SSteve French 	TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
18438c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid)
18538c8a9a5SSteve French )
18638c8a9a5SSteve French 
18738c8a9a5SSteve French #define DEFINE_SMB3_FD_EVENT(name)          \
18838c8a9a5SSteve French DEFINE_EVENT(smb3_fd_class, smb3_##name,    \
18938c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
19038c8a9a5SSteve French 		__u64	fid,			\
19138c8a9a5SSteve French 		__u32	tid,			\
19238c8a9a5SSteve French 		__u64	sesid),			\
19338c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid))
19438c8a9a5SSteve French 
19538c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(flush_enter);
19638c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(flush_done);
19738c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(close_enter);
19838c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(close_done);
19938c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(oplock_not_found);
20038c8a9a5SSteve French 
20138c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_fd_err_class,
20238c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
20338c8a9a5SSteve French 		__u64	fid,
20438c8a9a5SSteve French 		__u32	tid,
20538c8a9a5SSteve French 		__u64	sesid,
20638c8a9a5SSteve French 		int	rc),
20738c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, rc),
20838c8a9a5SSteve French 	TP_STRUCT__entry(
20938c8a9a5SSteve French 		__field(unsigned int, xid)
21038c8a9a5SSteve French 		__field(__u64, fid)
21138c8a9a5SSteve French 		__field(__u32, tid)
21238c8a9a5SSteve French 		__field(__u64, sesid)
21338c8a9a5SSteve French 		__field(int, rc)
21438c8a9a5SSteve French 	),
21538c8a9a5SSteve French 	TP_fast_assign(
21638c8a9a5SSteve French 		__entry->xid = xid;
21738c8a9a5SSteve French 		__entry->fid = fid;
21838c8a9a5SSteve French 		__entry->tid = tid;
21938c8a9a5SSteve French 		__entry->sesid = sesid;
22038c8a9a5SSteve French 		__entry->rc = rc;
22138c8a9a5SSteve French 	),
22238c8a9a5SSteve French 	TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
22338c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
22438c8a9a5SSteve French 		__entry->rc)
22538c8a9a5SSteve French )
22638c8a9a5SSteve French 
22738c8a9a5SSteve French #define DEFINE_SMB3_FD_ERR_EVENT(name)          \
22838c8a9a5SSteve French DEFINE_EVENT(smb3_fd_err_class, smb3_##name,    \
22938c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
23038c8a9a5SSteve French 		__u64	fid,			\
23138c8a9a5SSteve French 		__u32	tid,			\
23238c8a9a5SSteve French 		__u64	sesid,			\
23338c8a9a5SSteve French 		int	rc),			\
23438c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, rc))
23538c8a9a5SSteve French 
23638c8a9a5SSteve French DEFINE_SMB3_FD_ERR_EVENT(flush_err);
23738c8a9a5SSteve French DEFINE_SMB3_FD_ERR_EVENT(lock_err);
23838c8a9a5SSteve French DEFINE_SMB3_FD_ERR_EVENT(close_err);
23938c8a9a5SSteve French 
24038c8a9a5SSteve French /*
24138c8a9a5SSteve French  * For handle based query/set info calls
24238c8a9a5SSteve French  */
24338c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_enter_class,
24438c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
24538c8a9a5SSteve French 		__u64	fid,
24638c8a9a5SSteve French 		__u32	tid,
24738c8a9a5SSteve French 		__u64	sesid,
24838c8a9a5SSteve French 		__u8	infclass,
24938c8a9a5SSteve French 		__u32	type),
25038c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, infclass, type),
25138c8a9a5SSteve French 	TP_STRUCT__entry(
25238c8a9a5SSteve French 		__field(unsigned int, xid)
25338c8a9a5SSteve French 		__field(__u64, fid)
25438c8a9a5SSteve French 		__field(__u32, tid)
25538c8a9a5SSteve French 		__field(__u64, sesid)
25638c8a9a5SSteve French 		__field(__u8, infclass)
25738c8a9a5SSteve French 		__field(__u32, type)
25838c8a9a5SSteve French 	),
25938c8a9a5SSteve French 	TP_fast_assign(
26038c8a9a5SSteve French 		__entry->xid = xid;
26138c8a9a5SSteve French 		__entry->fid = fid;
26238c8a9a5SSteve French 		__entry->tid = tid;
26338c8a9a5SSteve French 		__entry->sesid = sesid;
26438c8a9a5SSteve French 		__entry->infclass = infclass;
26538c8a9a5SSteve French 		__entry->type = type;
26638c8a9a5SSteve French 	),
26738c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x",
26838c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
26938c8a9a5SSteve French 		__entry->infclass, __entry->type)
27038c8a9a5SSteve French )
27138c8a9a5SSteve French 
27238c8a9a5SSteve French #define DEFINE_SMB3_INF_ENTER_EVENT(name)          \
27338c8a9a5SSteve French DEFINE_EVENT(smb3_inf_enter_class, smb3_##name,    \
27438c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
27538c8a9a5SSteve French 		__u64	fid,			\
27638c8a9a5SSteve French 		__u32	tid,			\
27738c8a9a5SSteve French 		__u64	sesid,			\
27838c8a9a5SSteve French 		__u8	infclass,		\
27938c8a9a5SSteve French 		__u32	type),			\
28038c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, infclass, type))
28138c8a9a5SSteve French 
28238c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
28338c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
28438c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
28538c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
28638c8a9a5SSteve French 
28738c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_err_class,
28838c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
28938c8a9a5SSteve French 		__u64	fid,
29038c8a9a5SSteve French 		__u32	tid,
29138c8a9a5SSteve French 		__u64	sesid,
29238c8a9a5SSteve French 		__u8	infclass,
29338c8a9a5SSteve French 		__u32	type,
29438c8a9a5SSteve French 		int	rc),
29538c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
29638c8a9a5SSteve French 	TP_STRUCT__entry(
29738c8a9a5SSteve French 		__field(unsigned int, xid)
29838c8a9a5SSteve French 		__field(__u64, fid)
29938c8a9a5SSteve French 		__field(__u32, tid)
30038c8a9a5SSteve French 		__field(__u64, sesid)
30138c8a9a5SSteve French 		__field(__u8, infclass)
30238c8a9a5SSteve French 		__field(__u32, type)
30338c8a9a5SSteve French 		__field(int, rc)
30438c8a9a5SSteve French 	),
30538c8a9a5SSteve French 	TP_fast_assign(
30638c8a9a5SSteve French 		__entry->xid = xid;
30738c8a9a5SSteve French 		__entry->fid = fid;
30838c8a9a5SSteve French 		__entry->tid = tid;
30938c8a9a5SSteve French 		__entry->sesid = sesid;
31038c8a9a5SSteve French 		__entry->infclass = infclass;
31138c8a9a5SSteve French 		__entry->type = type;
31238c8a9a5SSteve French 		__entry->rc = rc;
31338c8a9a5SSteve French 	),
31438c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
31538c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
31638c8a9a5SSteve French 		__entry->infclass, __entry->type, __entry->rc)
31738c8a9a5SSteve French )
31838c8a9a5SSteve French 
31938c8a9a5SSteve French #define DEFINE_SMB3_INF_ERR_EVENT(name)          \
32038c8a9a5SSteve French DEFINE_EVENT(smb3_inf_err_class, smb3_##name,    \
32138c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
32238c8a9a5SSteve French 		__u64	fid,			\
32338c8a9a5SSteve French 		__u32	tid,			\
32438c8a9a5SSteve French 		__u64	sesid,			\
32538c8a9a5SSteve French 		__u8	infclass,		\
32638c8a9a5SSteve French 		__u32	type,			\
32738c8a9a5SSteve French 		int	rc),			\
32838c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
32938c8a9a5SSteve French 
33038c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
33138c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
33238c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(notify_err);
33338c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
33438c8a9a5SSteve French 
33538c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
33638c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
33738c8a9a5SSteve French 		__u32	tid,
33838c8a9a5SSteve French 		__u64	sesid,
33938c8a9a5SSteve French 		const char *full_path),
34038c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, full_path),
34138c8a9a5SSteve French 	TP_STRUCT__entry(
34238c8a9a5SSteve French 		__field(unsigned int, xid)
34338c8a9a5SSteve French 		__field(__u32, tid)
34438c8a9a5SSteve French 		__field(__u64, sesid)
34538c8a9a5SSteve French 		__string(path, full_path)
34638c8a9a5SSteve French 	),
34738c8a9a5SSteve French 	TP_fast_assign(
34838c8a9a5SSteve French 		__entry->xid = xid;
34938c8a9a5SSteve French 		__entry->tid = tid;
35038c8a9a5SSteve French 		__entry->sesid = sesid;
35138c8a9a5SSteve French 		__assign_str(path, full_path);
35238c8a9a5SSteve French 	),
35338c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
35438c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid,
35538c8a9a5SSteve French 		__get_str(path))
35638c8a9a5SSteve French )
35738c8a9a5SSteve French 
35838c8a9a5SSteve French #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name)     \
35938c8a9a5SSteve French DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name,    \
36038c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
36138c8a9a5SSteve French 		__u32	tid,			\
36238c8a9a5SSteve French 		__u64	sesid,			\
36338c8a9a5SSteve French 		const char *full_path),		\
36438c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, full_path))
36538c8a9a5SSteve French 
36638c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
36738c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
36838c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
36938c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
37038c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
37138c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
37238c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
37302bcf865SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_reparse_compound_enter);
374a158bb66SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(get_reparse_compound_enter);
37538c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
37638c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
37738c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter);
37838c8a9a5SSteve French 
37938c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
38038c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
38138c8a9a5SSteve French 		__u32	tid,
38238c8a9a5SSteve French 		__u64	sesid),
38338c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid),
38438c8a9a5SSteve French 	TP_STRUCT__entry(
38538c8a9a5SSteve French 		__field(unsigned int, xid)
38638c8a9a5SSteve French 		__field(__u32, tid)
38738c8a9a5SSteve French 		__field(__u64, sesid)
38838c8a9a5SSteve French 	),
38938c8a9a5SSteve French 	TP_fast_assign(
39038c8a9a5SSteve French 		__entry->xid = xid;
39138c8a9a5SSteve French 		__entry->tid = tid;
39238c8a9a5SSteve French 		__entry->sesid = sesid;
39338c8a9a5SSteve French 	),
39438c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x",
39538c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid)
39638c8a9a5SSteve French )
39738c8a9a5SSteve French 
39838c8a9a5SSteve French #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name)     \
39938c8a9a5SSteve French DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name,    \
40038c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
40138c8a9a5SSteve French 		__u32	tid,			\
40238c8a9a5SSteve French 		__u64	sesid),			\
40338c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid))
40438c8a9a5SSteve French 
40538c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
40638c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
40738c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
40838c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
40938c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
41038c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
41138c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
41202bcf865SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_reparse_compound_done);
413a158bb66SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(get_reparse_compound_done);
4147449d736SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_wsl_ea_compound_done);
41538c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
41638c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
41738c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done);
41838c8a9a5SSteve French 
41938c8a9a5SSteve French 
42038c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
42138c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
42238c8a9a5SSteve French 		__u32	tid,
42338c8a9a5SSteve French 		__u64	sesid,
42438c8a9a5SSteve French 		int	rc),
42538c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, rc),
42638c8a9a5SSteve French 	TP_STRUCT__entry(
42738c8a9a5SSteve French 		__field(unsigned int, xid)
42838c8a9a5SSteve French 		__field(__u32, tid)
42938c8a9a5SSteve French 		__field(__u64, sesid)
43038c8a9a5SSteve French 		__field(int, rc)
43138c8a9a5SSteve French 	),
43238c8a9a5SSteve French 	TP_fast_assign(
43338c8a9a5SSteve French 		__entry->xid = xid;
43438c8a9a5SSteve French 		__entry->tid = tid;
43538c8a9a5SSteve French 		__entry->sesid = sesid;
43638c8a9a5SSteve French 		__entry->rc = rc;
43738c8a9a5SSteve French 	),
43838c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
43938c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid,
44038c8a9a5SSteve French 		__entry->rc)
44138c8a9a5SSteve French )
44238c8a9a5SSteve French 
44338c8a9a5SSteve French #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name)     \
44438c8a9a5SSteve French DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name,    \
44538c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
44638c8a9a5SSteve French 		__u32	tid,			\
44738c8a9a5SSteve French 		__u64	sesid,			\
44838c8a9a5SSteve French 		int rc),			\
44938c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, rc))
45038c8a9a5SSteve French 
45138c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
45238c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
45338c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
45438c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
45538c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
45638c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
45738c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
45802bcf865SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_reparse_compound_err);
459a158bb66SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(get_reparse_compound_err);
4607449d736SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_wsl_ea_compound_err);
46138c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
46238c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
46338c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err);
46438c8a9a5SSteve French 
46538c8a9a5SSteve French /*
46638c8a9a5SSteve French  * For logging SMB3 Status code and Command for responses which return errors
46738c8a9a5SSteve French  */
46838c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_cmd_err_class,
46938c8a9a5SSteve French 	TP_PROTO(__u32	tid,
47038c8a9a5SSteve French 		__u64	sesid,
47138c8a9a5SSteve French 		__u16	cmd,
47238c8a9a5SSteve French 		__u64	mid,
47338c8a9a5SSteve French 		__u32	status,
47438c8a9a5SSteve French 		int	rc),
47538c8a9a5SSteve French 	TP_ARGS(tid, sesid, cmd, mid, status, rc),
47638c8a9a5SSteve French 	TP_STRUCT__entry(
47738c8a9a5SSteve French 		__field(__u32, tid)
47838c8a9a5SSteve French 		__field(__u64, sesid)
47938c8a9a5SSteve French 		__field(__u16, cmd)
48038c8a9a5SSteve French 		__field(__u64, mid)
48138c8a9a5SSteve French 		__field(__u32, status)
48238c8a9a5SSteve French 		__field(int, rc)
48338c8a9a5SSteve French 	),
48438c8a9a5SSteve French 	TP_fast_assign(
48538c8a9a5SSteve French 		__entry->tid = tid;
48638c8a9a5SSteve French 		__entry->sesid = sesid;
48738c8a9a5SSteve French 		__entry->cmd = cmd;
48838c8a9a5SSteve French 		__entry->mid = mid;
48938c8a9a5SSteve French 		__entry->status = status;
49038c8a9a5SSteve French 		__entry->rc = rc;
49138c8a9a5SSteve French 	),
49238c8a9a5SSteve French 	TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
49338c8a9a5SSteve French 		__entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
49438c8a9a5SSteve French 		__entry->status, __entry->rc)
49538c8a9a5SSteve French )
49638c8a9a5SSteve French 
49738c8a9a5SSteve French #define DEFINE_SMB3_CMD_ERR_EVENT(name)          \
49838c8a9a5SSteve French DEFINE_EVENT(smb3_cmd_err_class, smb3_##name,    \
49938c8a9a5SSteve French 	TP_PROTO(__u32	tid,			\
50038c8a9a5SSteve French 		__u64	sesid,			\
50138c8a9a5SSteve French 		__u16	cmd,			\
50238c8a9a5SSteve French 		__u64	mid,			\
50338c8a9a5SSteve French 		__u32	status,			\
50438c8a9a5SSteve French 		int	rc),			\
50538c8a9a5SSteve French 	TP_ARGS(tid, sesid, cmd, mid, status, rc))
50638c8a9a5SSteve French 
50738c8a9a5SSteve French DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
50838c8a9a5SSteve French 
50938c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_cmd_done_class,
51038c8a9a5SSteve French 	TP_PROTO(__u32	tid,
51138c8a9a5SSteve French 		__u64	sesid,
51238c8a9a5SSteve French 		__u16	cmd,
51338c8a9a5SSteve French 		__u64	mid),
51438c8a9a5SSteve French 	TP_ARGS(tid, sesid, cmd, mid),
51538c8a9a5SSteve French 	TP_STRUCT__entry(
51638c8a9a5SSteve French 		__field(__u32, tid)
51738c8a9a5SSteve French 		__field(__u64, sesid)
51838c8a9a5SSteve French 		__field(__u16, cmd)
51938c8a9a5SSteve French 		__field(__u64, mid)
52038c8a9a5SSteve French 	),
52138c8a9a5SSteve French 	TP_fast_assign(
52238c8a9a5SSteve French 		__entry->tid = tid;
52338c8a9a5SSteve French 		__entry->sesid = sesid;
52438c8a9a5SSteve French 		__entry->cmd = cmd;
52538c8a9a5SSteve French 		__entry->mid = mid;
52638c8a9a5SSteve French 	),
52738c8a9a5SSteve French 	TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
52838c8a9a5SSteve French 		__entry->sesid, __entry->tid,
52938c8a9a5SSteve French 		__entry->cmd, __entry->mid)
53038c8a9a5SSteve French )
53138c8a9a5SSteve French 
53238c8a9a5SSteve French #define DEFINE_SMB3_CMD_DONE_EVENT(name)          \
53338c8a9a5SSteve French DEFINE_EVENT(smb3_cmd_done_class, smb3_##name,    \
53438c8a9a5SSteve French 	TP_PROTO(__u32	tid,			\
53538c8a9a5SSteve French 		__u64	sesid,			\
53638c8a9a5SSteve French 		__u16	cmd,			\
53738c8a9a5SSteve French 		__u64	mid),			\
53838c8a9a5SSteve French 	TP_ARGS(tid, sesid, cmd, mid))
53938c8a9a5SSteve French 
54038c8a9a5SSteve French DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
54138c8a9a5SSteve French DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
54238c8a9a5SSteve French DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
54338c8a9a5SSteve French 
54438c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_mid_class,
54538c8a9a5SSteve French 	TP_PROTO(__u16	cmd,
54638c8a9a5SSteve French 		__u64	mid,
54738c8a9a5SSteve French 		__u32	pid,
54838c8a9a5SSteve French 		unsigned long when_sent,
54938c8a9a5SSteve French 		unsigned long when_received),
55038c8a9a5SSteve French 	TP_ARGS(cmd, mid, pid, when_sent, when_received),
55138c8a9a5SSteve French 	TP_STRUCT__entry(
55238c8a9a5SSteve French 		__field(__u16, cmd)
55338c8a9a5SSteve French 		__field(__u64, mid)
55438c8a9a5SSteve French 		__field(__u32, pid)
55538c8a9a5SSteve French 		__field(unsigned long, when_sent)
55638c8a9a5SSteve French 		__field(unsigned long, when_received)
55738c8a9a5SSteve French 	),
55838c8a9a5SSteve French 	TP_fast_assign(
55938c8a9a5SSteve French 		__entry->cmd = cmd;
56038c8a9a5SSteve French 		__entry->mid = mid;
56138c8a9a5SSteve French 		__entry->pid = pid;
56238c8a9a5SSteve French 		__entry->when_sent = when_sent;
56338c8a9a5SSteve French 		__entry->when_received = when_received;
56438c8a9a5SSteve French 	),
56538c8a9a5SSteve French 	TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
56638c8a9a5SSteve French 		__entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
56738c8a9a5SSteve French 		__entry->when_received)
56838c8a9a5SSteve French )
56938c8a9a5SSteve French 
57038c8a9a5SSteve French #define DEFINE_SMB3_MID_EVENT(name)          \
57138c8a9a5SSteve French DEFINE_EVENT(smb3_mid_class, smb3_##name,    \
57238c8a9a5SSteve French 	TP_PROTO(__u16	cmd,			\
57338c8a9a5SSteve French 		__u64	mid,			\
57438c8a9a5SSteve French 		__u32	pid,			\
57538c8a9a5SSteve French 		unsigned long when_sent,	\
57638c8a9a5SSteve French 		unsigned long when_received),	\
57738c8a9a5SSteve French 	TP_ARGS(cmd, mid, pid, when_sent, when_received))
57838c8a9a5SSteve French 
57938c8a9a5SSteve French DEFINE_SMB3_MID_EVENT(slow_rsp);
58038c8a9a5SSteve French 
58138c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_exit_err_class,
58238c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
58338c8a9a5SSteve French 		const char *func_name,
58438c8a9a5SSteve French 		int	rc),
58538c8a9a5SSteve French 	TP_ARGS(xid, func_name, rc),
58638c8a9a5SSteve French 	TP_STRUCT__entry(
58738c8a9a5SSteve French 		__field(unsigned int, xid)
58838c8a9a5SSteve French 		__string(func_name, func_name)
58938c8a9a5SSteve French 		__field(int, rc)
59038c8a9a5SSteve French 	),
59138c8a9a5SSteve French 	TP_fast_assign(
59238c8a9a5SSteve French 		__entry->xid = xid;
59338c8a9a5SSteve French 		__assign_str(func_name, func_name);
59438c8a9a5SSteve French 		__entry->rc = rc;
59538c8a9a5SSteve French 	),
59638c8a9a5SSteve French 	TP_printk("\t%s: xid=%u rc=%d",
59738c8a9a5SSteve French 		__get_str(func_name), __entry->xid, __entry->rc)
59838c8a9a5SSteve French )
59938c8a9a5SSteve French 
60038c8a9a5SSteve French #define DEFINE_SMB3_EXIT_ERR_EVENT(name)          \
60138c8a9a5SSteve French DEFINE_EVENT(smb3_exit_err_class, smb3_##name,    \
60238c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
60338c8a9a5SSteve French 		const char *func_name,		\
60438c8a9a5SSteve French 		int	rc),			\
60538c8a9a5SSteve French 	TP_ARGS(xid, func_name, rc))
60638c8a9a5SSteve French 
60738c8a9a5SSteve French DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
60838c8a9a5SSteve French 
60938c8a9a5SSteve French 
61038c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_sync_err_class,
61138c8a9a5SSteve French 	TP_PROTO(unsigned long ino,
61238c8a9a5SSteve French 		int	rc),
61338c8a9a5SSteve French 	TP_ARGS(ino, rc),
61438c8a9a5SSteve French 	TP_STRUCT__entry(
61538c8a9a5SSteve French 		__field(unsigned long, ino)
61638c8a9a5SSteve French 		__field(int, rc)
61738c8a9a5SSteve French 	),
61838c8a9a5SSteve French 	TP_fast_assign(
61938c8a9a5SSteve French 		__entry->ino = ino;
62038c8a9a5SSteve French 		__entry->rc = rc;
62138c8a9a5SSteve French 	),
62238c8a9a5SSteve French 	TP_printk("\tino=%lu rc=%d",
62338c8a9a5SSteve French 		__entry->ino, __entry->rc)
62438c8a9a5SSteve French )
62538c8a9a5SSteve French 
62638c8a9a5SSteve French #define DEFINE_SMB3_SYNC_ERR_EVENT(name)          \
62738c8a9a5SSteve French DEFINE_EVENT(smb3_sync_err_class, cifs_##name,    \
62838c8a9a5SSteve French 	TP_PROTO(unsigned long ino,		\
62938c8a9a5SSteve French 		int	rc),			\
63038c8a9a5SSteve French 	TP_ARGS(ino, rc))
63138c8a9a5SSteve French 
63238c8a9a5SSteve French DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
63338c8a9a5SSteve French DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
63438c8a9a5SSteve French 
63538c8a9a5SSteve French 
63638c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_enter_exit_class,
63738c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
63838c8a9a5SSteve French 		const char *func_name),
63938c8a9a5SSteve French 	TP_ARGS(xid, func_name),
64038c8a9a5SSteve French 	TP_STRUCT__entry(
64138c8a9a5SSteve French 		__field(unsigned int, xid)
64238c8a9a5SSteve French 		__string(func_name, func_name)
64338c8a9a5SSteve French 	),
64438c8a9a5SSteve French 	TP_fast_assign(
64538c8a9a5SSteve French 		__entry->xid = xid;
64638c8a9a5SSteve French 		__assign_str(func_name, func_name);
64738c8a9a5SSteve French 	),
64838c8a9a5SSteve French 	TP_printk("\t%s: xid=%u",
64938c8a9a5SSteve French 		__get_str(func_name), __entry->xid)
65038c8a9a5SSteve French )
65138c8a9a5SSteve French 
65238c8a9a5SSteve French #define DEFINE_SMB3_ENTER_EXIT_EVENT(name)        \
65338c8a9a5SSteve French DEFINE_EVENT(smb3_enter_exit_class, smb3_##name,  \
65438c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
65538c8a9a5SSteve French 		const char *func_name),		\
65638c8a9a5SSteve French 	TP_ARGS(xid, func_name))
65738c8a9a5SSteve French 
65838c8a9a5SSteve French DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
65938c8a9a5SSteve French DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
66038c8a9a5SSteve French 
66138c8a9a5SSteve French /*
66238c8a9a5SSteve French  * For SMB2/SMB3 tree connect
66338c8a9a5SSteve French  */
66438c8a9a5SSteve French 
66538c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_tcon_class,
66638c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
66738c8a9a5SSteve French 		__u32	tid,
66838c8a9a5SSteve French 		__u64	sesid,
66938c8a9a5SSteve French 		const char *unc_name,
67038c8a9a5SSteve French 		int	rc),
67138c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, unc_name, rc),
67238c8a9a5SSteve French 	TP_STRUCT__entry(
67338c8a9a5SSteve French 		__field(unsigned int, xid)
67438c8a9a5SSteve French 		__field(__u32, tid)
67538c8a9a5SSteve French 		__field(__u64, sesid)
67638c8a9a5SSteve French 		__string(name, unc_name)
67738c8a9a5SSteve French 		__field(int, rc)
67838c8a9a5SSteve French 	),
67938c8a9a5SSteve French 	TP_fast_assign(
68038c8a9a5SSteve French 		__entry->xid = xid;
68138c8a9a5SSteve French 		__entry->tid = tid;
68238c8a9a5SSteve French 		__entry->sesid = sesid;
68338c8a9a5SSteve French 		__assign_str(name, unc_name);
68438c8a9a5SSteve French 		__entry->rc = rc;
68538c8a9a5SSteve French 	),
68638c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
68738c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid,
68838c8a9a5SSteve French 		__get_str(name), __entry->rc)
68938c8a9a5SSteve French )
69038c8a9a5SSteve French 
69138c8a9a5SSteve French #define DEFINE_SMB3_TCON_EVENT(name)          \
69238c8a9a5SSteve French DEFINE_EVENT(smb3_tcon_class, smb3_##name,    \
69338c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
69438c8a9a5SSteve French 		__u32	tid,			\
69538c8a9a5SSteve French 		__u64	sesid,			\
69638c8a9a5SSteve French 		const char *unc_name,		\
69738c8a9a5SSteve French 		int	rc),			\
69838c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, unc_name, rc))
69938c8a9a5SSteve French 
70038c8a9a5SSteve French DEFINE_SMB3_TCON_EVENT(tcon);
701feeec636SSteve French DEFINE_SMB3_TCON_EVENT(qfs_done);
70238c8a9a5SSteve French 
70338c8a9a5SSteve French /*
70438c8a9a5SSteve French  * For smb2/smb3 open (including create and mkdir) calls
70538c8a9a5SSteve French  */
70638c8a9a5SSteve French 
70738c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_open_enter_class,
70838c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
70938c8a9a5SSteve French 		__u32	tid,
71038c8a9a5SSteve French 		__u64	sesid,
71138c8a9a5SSteve French 		const char *full_path,
71238c8a9a5SSteve French 		int	create_options,
71338c8a9a5SSteve French 		int	desired_access),
71438c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access),
71538c8a9a5SSteve French 	TP_STRUCT__entry(
71638c8a9a5SSteve French 		__field(unsigned int, xid)
71738c8a9a5SSteve French 		__field(__u32, tid)
71838c8a9a5SSteve French 		__field(__u64, sesid)
71938c8a9a5SSteve French 		__string(path, full_path)
72038c8a9a5SSteve French 		__field(int, create_options)
72138c8a9a5SSteve French 		__field(int, desired_access)
72238c8a9a5SSteve French 	),
72338c8a9a5SSteve French 	TP_fast_assign(
72438c8a9a5SSteve French 		__entry->xid = xid;
72538c8a9a5SSteve French 		__entry->tid = tid;
72638c8a9a5SSteve French 		__entry->sesid = sesid;
72738c8a9a5SSteve French 		__assign_str(path, full_path);
72838c8a9a5SSteve French 		__entry->create_options = create_options;
72938c8a9a5SSteve French 		__entry->desired_access = desired_access;
73038c8a9a5SSteve French 	),
73138c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s cr_opts=0x%x des_access=0x%x",
73238c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __get_str(path),
73338c8a9a5SSteve French 		__entry->create_options, __entry->desired_access)
73438c8a9a5SSteve French )
73538c8a9a5SSteve French 
73638c8a9a5SSteve French #define DEFINE_SMB3_OPEN_ENTER_EVENT(name)        \
73738c8a9a5SSteve French DEFINE_EVENT(smb3_open_enter_class, smb3_##name,  \
73838c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
73938c8a9a5SSteve French 		__u32	tid,			\
74038c8a9a5SSteve French 		__u64	sesid,			\
74138c8a9a5SSteve French 		const char *full_path,		\
74238c8a9a5SSteve French 		int	create_options,		\
74338c8a9a5SSteve French 		int	desired_access),	\
74438c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access))
74538c8a9a5SSteve French 
74638c8a9a5SSteve French DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
74738c8a9a5SSteve French DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
74838c8a9a5SSteve French 
74938c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_open_err_class,
75038c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
75138c8a9a5SSteve French 		__u32	tid,
75238c8a9a5SSteve French 		__u64	sesid,
75338c8a9a5SSteve French 		int	create_options,
75438c8a9a5SSteve French 		int	desired_access,
75538c8a9a5SSteve French 		int	rc),
75638c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
75738c8a9a5SSteve French 	TP_STRUCT__entry(
75838c8a9a5SSteve French 		__field(unsigned int, xid)
75938c8a9a5SSteve French 		__field(__u32, tid)
76038c8a9a5SSteve French 		__field(__u64, sesid)
76138c8a9a5SSteve French 		__field(int,   create_options)
76238c8a9a5SSteve French 		__field(int, desired_access)
76338c8a9a5SSteve French 		__field(int, rc)
76438c8a9a5SSteve French 	),
76538c8a9a5SSteve French 	TP_fast_assign(
76638c8a9a5SSteve French 		__entry->xid = xid;
76738c8a9a5SSteve French 		__entry->tid = tid;
76838c8a9a5SSteve French 		__entry->sesid = sesid;
76938c8a9a5SSteve French 		__entry->create_options = create_options;
77038c8a9a5SSteve French 		__entry->desired_access = desired_access;
77138c8a9a5SSteve French 		__entry->rc = rc;
77238c8a9a5SSteve French 	),
77338c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
77438c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid,
77538c8a9a5SSteve French 		__entry->create_options, __entry->desired_access, __entry->rc)
77638c8a9a5SSteve French )
77738c8a9a5SSteve French 
77838c8a9a5SSteve French #define DEFINE_SMB3_OPEN_ERR_EVENT(name)          \
77938c8a9a5SSteve French DEFINE_EVENT(smb3_open_err_class, smb3_##name,    \
78038c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
78138c8a9a5SSteve French 		__u32	tid,			\
78238c8a9a5SSteve French 		__u64	sesid,			\
78338c8a9a5SSteve French 		int	create_options,		\
78438c8a9a5SSteve French 		int	desired_access,		\
78538c8a9a5SSteve French 		int	rc),			\
78638c8a9a5SSteve French 	TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
78738c8a9a5SSteve French 
78838c8a9a5SSteve French DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
78938c8a9a5SSteve French DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
79038c8a9a5SSteve French 
79138c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_open_done_class,
79238c8a9a5SSteve French 	TP_PROTO(unsigned int xid,
79338c8a9a5SSteve French 		__u64	fid,
79438c8a9a5SSteve French 		__u32	tid,
79538c8a9a5SSteve French 		__u64	sesid,
79638c8a9a5SSteve French 		int	create_options,
79738c8a9a5SSteve French 		int	desired_access),
79838c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
79938c8a9a5SSteve French 	TP_STRUCT__entry(
80038c8a9a5SSteve French 		__field(unsigned int, xid)
80138c8a9a5SSteve French 		__field(__u64, fid)
80238c8a9a5SSteve French 		__field(__u32, tid)
80338c8a9a5SSteve French 		__field(__u64, sesid)
80438c8a9a5SSteve French 		__field(int, create_options)
80538c8a9a5SSteve French 		__field(int, desired_access)
80638c8a9a5SSteve French 	),
80738c8a9a5SSteve French 	TP_fast_assign(
80838c8a9a5SSteve French 		__entry->xid = xid;
80938c8a9a5SSteve French 		__entry->fid = fid;
81038c8a9a5SSteve French 		__entry->tid = tid;
81138c8a9a5SSteve French 		__entry->sesid = sesid;
81238c8a9a5SSteve French 		__entry->create_options = create_options;
81338c8a9a5SSteve French 		__entry->desired_access = desired_access;
81438c8a9a5SSteve French 	),
81538c8a9a5SSteve French 	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
81638c8a9a5SSteve French 		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
81738c8a9a5SSteve French 		__entry->create_options, __entry->desired_access)
81838c8a9a5SSteve French )
81938c8a9a5SSteve French 
82038c8a9a5SSteve French #define DEFINE_SMB3_OPEN_DONE_EVENT(name)        \
82138c8a9a5SSteve French DEFINE_EVENT(smb3_open_done_class, smb3_##name,  \
82238c8a9a5SSteve French 	TP_PROTO(unsigned int xid,		\
82338c8a9a5SSteve French 		__u64	fid,			\
82438c8a9a5SSteve French 		__u32	tid,			\
82538c8a9a5SSteve French 		__u64	sesid,			\
82638c8a9a5SSteve French 		int	create_options,		\
82738c8a9a5SSteve French 		int	desired_access),	\
82838c8a9a5SSteve French 	TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
82938c8a9a5SSteve French 
83038c8a9a5SSteve French DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
83138c8a9a5SSteve French DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
83238c8a9a5SSteve French 
83338c8a9a5SSteve French 
83438c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_lease_done_class,
83538c8a9a5SSteve French 	TP_PROTO(__u32	lease_state,
83638c8a9a5SSteve French 		__u32	tid,
83738c8a9a5SSteve French 		__u64	sesid,
83838c8a9a5SSteve French 		__u64	lease_key_low,
83938c8a9a5SSteve French 		__u64	lease_key_high),
84038c8a9a5SSteve French 	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
84138c8a9a5SSteve French 	TP_STRUCT__entry(
84238c8a9a5SSteve French 		__field(__u32, lease_state)
84338c8a9a5SSteve French 		__field(__u32, tid)
84438c8a9a5SSteve French 		__field(__u64, sesid)
84538c8a9a5SSteve French 		__field(__u64, lease_key_low)
84638c8a9a5SSteve French 		__field(__u64, lease_key_high)
84738c8a9a5SSteve French 	),
84838c8a9a5SSteve French 	TP_fast_assign(
84938c8a9a5SSteve French 		__entry->lease_state = lease_state;
85038c8a9a5SSteve French 		__entry->tid = tid;
85138c8a9a5SSteve French 		__entry->sesid = sesid;
85238c8a9a5SSteve French 		__entry->lease_key_low = lease_key_low;
85338c8a9a5SSteve French 		__entry->lease_key_high = lease_key_high;
85438c8a9a5SSteve French 	),
85538c8a9a5SSteve French 	TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
85638c8a9a5SSteve French 		__entry->sesid, __entry->tid, __entry->lease_key_high,
85738c8a9a5SSteve French 		__entry->lease_key_low, __entry->lease_state)
85838c8a9a5SSteve French )
85938c8a9a5SSteve French 
86038c8a9a5SSteve French #define DEFINE_SMB3_LEASE_DONE_EVENT(name)        \
86138c8a9a5SSteve French DEFINE_EVENT(smb3_lease_done_class, smb3_##name,  \
86238c8a9a5SSteve French 	TP_PROTO(__u32	lease_state,		\
86338c8a9a5SSteve French 		__u32	tid,			\
86438c8a9a5SSteve French 		__u64	sesid,			\
86538c8a9a5SSteve French 		__u64	lease_key_low,		\
86638c8a9a5SSteve French 		__u64	lease_key_high),	\
86738c8a9a5SSteve French 	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
86838c8a9a5SSteve French 
86938c8a9a5SSteve French DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
87038c8a9a5SSteve French DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
87138c8a9a5SSteve French 
87238c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_lease_err_class,
87338c8a9a5SSteve French 	TP_PROTO(__u32	lease_state,
87438c8a9a5SSteve French 		__u32	tid,
87538c8a9a5SSteve French 		__u64	sesid,
87638c8a9a5SSteve French 		__u64	lease_key_low,
87738c8a9a5SSteve French 		__u64	lease_key_high,
87838c8a9a5SSteve French 		int	rc),
87938c8a9a5SSteve French 	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
88038c8a9a5SSteve French 	TP_STRUCT__entry(
88138c8a9a5SSteve French 		__field(__u32, lease_state)
88238c8a9a5SSteve French 		__field(__u32, tid)
88338c8a9a5SSteve French 		__field(__u64, sesid)
88438c8a9a5SSteve French 		__field(__u64, lease_key_low)
88538c8a9a5SSteve French 		__field(__u64, lease_key_high)
88638c8a9a5SSteve French 		__field(int, rc)
88738c8a9a5SSteve French 	),
88838c8a9a5SSteve French 	TP_fast_assign(
88938c8a9a5SSteve French 		__entry->lease_state = lease_state;
89038c8a9a5SSteve French 		__entry->tid = tid;
89138c8a9a5SSteve French 		__entry->sesid = sesid;
89238c8a9a5SSteve French 		__entry->lease_key_low = lease_key_low;
89338c8a9a5SSteve French 		__entry->lease_key_high = lease_key_high;
89438c8a9a5SSteve French 		__entry->rc = rc;
89538c8a9a5SSteve French 	),
89638c8a9a5SSteve French 	TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
89738c8a9a5SSteve French 		__entry->sesid, __entry->tid, __entry->lease_key_high,
89838c8a9a5SSteve French 		__entry->lease_key_low, __entry->lease_state, __entry->rc)
89938c8a9a5SSteve French )
90038c8a9a5SSteve French 
90138c8a9a5SSteve French #define DEFINE_SMB3_LEASE_ERR_EVENT(name)        \
90238c8a9a5SSteve French DEFINE_EVENT(smb3_lease_err_class, smb3_##name,  \
90338c8a9a5SSteve French 	TP_PROTO(__u32	lease_state,		\
90438c8a9a5SSteve French 		__u32	tid,			\
90538c8a9a5SSteve French 		__u64	sesid,			\
90638c8a9a5SSteve French 		__u64	lease_key_low,		\
90738c8a9a5SSteve French 		__u64	lease_key_high,		\
90838c8a9a5SSteve French 		int	rc),			\
90938c8a9a5SSteve French 	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
91038c8a9a5SSteve French 
91138c8a9a5SSteve French DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
91238c8a9a5SSteve French 
91338c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_connect_class,
91438c8a9a5SSteve French 	TP_PROTO(char *hostname,
91538c8a9a5SSteve French 		__u64 conn_id,
91638c8a9a5SSteve French 		const struct __kernel_sockaddr_storage *dst_addr),
91738c8a9a5SSteve French 	TP_ARGS(hostname, conn_id, dst_addr),
91838c8a9a5SSteve French 	TP_STRUCT__entry(
91938c8a9a5SSteve French 		__string(hostname, hostname)
92038c8a9a5SSteve French 		__field(__u64, conn_id)
92138c8a9a5SSteve French 		__array(__u8, dst_addr, sizeof(struct sockaddr_storage))
92238c8a9a5SSteve French 	),
92338c8a9a5SSteve French 	TP_fast_assign(
92438c8a9a5SSteve French 		struct sockaddr_storage *pss = NULL;
92538c8a9a5SSteve French 
92638c8a9a5SSteve French 		__entry->conn_id = conn_id;
92738c8a9a5SSteve French 		pss = (struct sockaddr_storage *)__entry->dst_addr;
92838c8a9a5SSteve French 		*pss = *dst_addr;
92938c8a9a5SSteve French 		__assign_str(hostname, hostname);
93038c8a9a5SSteve French 	),
93138c8a9a5SSteve French 	TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
93238c8a9a5SSteve French 		__entry->conn_id,
93338c8a9a5SSteve French 		__get_str(hostname),
93438c8a9a5SSteve French 		__entry->dst_addr)
93538c8a9a5SSteve French )
93638c8a9a5SSteve French 
93738c8a9a5SSteve French #define DEFINE_SMB3_CONNECT_EVENT(name)        \
93838c8a9a5SSteve French DEFINE_EVENT(smb3_connect_class, smb3_##name,  \
93938c8a9a5SSteve French 	TP_PROTO(char *hostname,		\
94038c8a9a5SSteve French 		__u64 conn_id,			\
94138c8a9a5SSteve French 		const struct __kernel_sockaddr_storage *addr),	\
94238c8a9a5SSteve French 	TP_ARGS(hostname, conn_id, addr))
94338c8a9a5SSteve French 
94438c8a9a5SSteve French DEFINE_SMB3_CONNECT_EVENT(connect_done);
945e3603ccfSSteve French DEFINE_SMB3_CONNECT_EVENT(smbd_connect_done);
946e3603ccfSSteve French DEFINE_SMB3_CONNECT_EVENT(smbd_connect_err);
94738c8a9a5SSteve French 
94838c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_connect_err_class,
94938c8a9a5SSteve French 	TP_PROTO(char *hostname, __u64 conn_id,
95038c8a9a5SSteve French 		const struct __kernel_sockaddr_storage *dst_addr, int rc),
95138c8a9a5SSteve French 	TP_ARGS(hostname, conn_id, dst_addr, rc),
95238c8a9a5SSteve French 	TP_STRUCT__entry(
95338c8a9a5SSteve French 		__string(hostname, hostname)
95438c8a9a5SSteve French 		__field(__u64, conn_id)
95538c8a9a5SSteve French 		__array(__u8, dst_addr, sizeof(struct sockaddr_storage))
95638c8a9a5SSteve French 		__field(int, rc)
95738c8a9a5SSteve French 	),
95838c8a9a5SSteve French 	TP_fast_assign(
95938c8a9a5SSteve French 		struct sockaddr_storage *pss = NULL;
96038c8a9a5SSteve French 
96138c8a9a5SSteve French 		__entry->conn_id = conn_id;
96238c8a9a5SSteve French 		__entry->rc = rc;
96338c8a9a5SSteve French 		pss = (struct sockaddr_storage *)__entry->dst_addr;
96438c8a9a5SSteve French 		*pss = *dst_addr;
96538c8a9a5SSteve French 		__assign_str(hostname, hostname);
96638c8a9a5SSteve French 	),
96738c8a9a5SSteve French 	TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
96838c8a9a5SSteve French 		__entry->rc,
96938c8a9a5SSteve French 		__entry->conn_id,
97038c8a9a5SSteve French 		__get_str(hostname),
97138c8a9a5SSteve French 		__entry->dst_addr)
97238c8a9a5SSteve French )
97338c8a9a5SSteve French 
97438c8a9a5SSteve French #define DEFINE_SMB3_CONNECT_ERR_EVENT(name)        \
97538c8a9a5SSteve French DEFINE_EVENT(smb3_connect_err_class, smb3_##name,  \
97638c8a9a5SSteve French 	TP_PROTO(char *hostname,		\
97738c8a9a5SSteve French 		__u64 conn_id,			\
97838c8a9a5SSteve French 		const struct __kernel_sockaddr_storage *addr,	\
97938c8a9a5SSteve French 		int rc),			\
98038c8a9a5SSteve French 	TP_ARGS(hostname, conn_id, addr, rc))
98138c8a9a5SSteve French 
98238c8a9a5SSteve French DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
98338c8a9a5SSteve French 
98438c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_reconnect_class,
98538c8a9a5SSteve French 	TP_PROTO(__u64	currmid,
98638c8a9a5SSteve French 		__u64 conn_id,
98738c8a9a5SSteve French 		char *hostname),
98838c8a9a5SSteve French 	TP_ARGS(currmid, conn_id, hostname),
98938c8a9a5SSteve French 	TP_STRUCT__entry(
99038c8a9a5SSteve French 		__field(__u64, currmid)
99138c8a9a5SSteve French 		__field(__u64, conn_id)
99238c8a9a5SSteve French 		__string(hostname, hostname)
99338c8a9a5SSteve French 	),
99438c8a9a5SSteve French 	TP_fast_assign(
99538c8a9a5SSteve French 		__entry->currmid = currmid;
99638c8a9a5SSteve French 		__entry->conn_id = conn_id;
99738c8a9a5SSteve French 		__assign_str(hostname, hostname);
99838c8a9a5SSteve French 	),
99938c8a9a5SSteve French 	TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
100038c8a9a5SSteve French 		__entry->conn_id,
100138c8a9a5SSteve French 		__get_str(hostname),
100238c8a9a5SSteve French 		__entry->currmid)
100338c8a9a5SSteve French )
100438c8a9a5SSteve French 
100538c8a9a5SSteve French #define DEFINE_SMB3_RECONNECT_EVENT(name)        \
100638c8a9a5SSteve French DEFINE_EVENT(smb3_reconnect_class, smb3_##name,  \
100738c8a9a5SSteve French 	TP_PROTO(__u64	currmid,		\
100838c8a9a5SSteve French 		__u64 conn_id,			\
100938c8a9a5SSteve French 		char *hostname),				\
101038c8a9a5SSteve French 	TP_ARGS(currmid, conn_id, hostname))
101138c8a9a5SSteve French 
101238c8a9a5SSteve French DEFINE_SMB3_RECONNECT_EVENT(reconnect);
101338c8a9a5SSteve French DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
101438c8a9a5SSteve French 
101561986a58SShyam Prasad N DECLARE_EVENT_CLASS(smb3_ses_class,
101661986a58SShyam Prasad N 	TP_PROTO(__u64	sesid),
101761986a58SShyam Prasad N 	TP_ARGS(sesid),
101861986a58SShyam Prasad N 	TP_STRUCT__entry(
101961986a58SShyam Prasad N 		__field(__u64, sesid)
102061986a58SShyam Prasad N 	),
102161986a58SShyam Prasad N 	TP_fast_assign(
102261986a58SShyam Prasad N 		__entry->sesid = sesid;
102361986a58SShyam Prasad N 	),
102461986a58SShyam Prasad N 	TP_printk("sid=0x%llx",
102561986a58SShyam Prasad N 		__entry->sesid)
102661986a58SShyam Prasad N )
102761986a58SShyam Prasad N 
102861986a58SShyam Prasad N #define DEFINE_SMB3_SES_EVENT(name)        \
102961986a58SShyam Prasad N DEFINE_EVENT(smb3_ses_class, smb3_##name,  \
103061986a58SShyam Prasad N 	TP_PROTO(__u64	sesid),				\
103161986a58SShyam Prasad N 	TP_ARGS(sesid))
103261986a58SShyam Prasad N 
103361986a58SShyam Prasad N DEFINE_SMB3_SES_EVENT(ses_not_found);
103461986a58SShyam Prasad N 
103538c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_credit_class,
103638c8a9a5SSteve French 	TP_PROTO(__u64	currmid,
103738c8a9a5SSteve French 		__u64 conn_id,
103838c8a9a5SSteve French 		char *hostname,
103938c8a9a5SSteve French 		int credits,
104038c8a9a5SSteve French 		int credits_to_add,
104138c8a9a5SSteve French 		int in_flight),
104238c8a9a5SSteve French 	TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
104338c8a9a5SSteve French 	TP_STRUCT__entry(
104438c8a9a5SSteve French 		__field(__u64, currmid)
104538c8a9a5SSteve French 		__field(__u64, conn_id)
104638c8a9a5SSteve French 		__string(hostname, hostname)
104738c8a9a5SSteve French 		__field(int, credits)
104838c8a9a5SSteve French 		__field(int, credits_to_add)
104938c8a9a5SSteve French 		__field(int, in_flight)
105038c8a9a5SSteve French 	),
105138c8a9a5SSteve French 	TP_fast_assign(
105238c8a9a5SSteve French 		__entry->currmid = currmid;
105338c8a9a5SSteve French 		__entry->conn_id = conn_id;
105438c8a9a5SSteve French 		__assign_str(hostname, hostname);
105538c8a9a5SSteve French 		__entry->credits = credits;
105638c8a9a5SSteve French 		__entry->credits_to_add = credits_to_add;
105738c8a9a5SSteve French 		__entry->in_flight = in_flight;
105838c8a9a5SSteve French 	),
105938c8a9a5SSteve French 	TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
106038c8a9a5SSteve French 			"credits=%d credit_change=%d in_flight=%d",
106138c8a9a5SSteve French 		__entry->conn_id,
106238c8a9a5SSteve French 		__get_str(hostname),
106338c8a9a5SSteve French 		__entry->currmid,
106438c8a9a5SSteve French 		__entry->credits,
106538c8a9a5SSteve French 		__entry->credits_to_add,
106638c8a9a5SSteve French 		__entry->in_flight)
106738c8a9a5SSteve French )
106838c8a9a5SSteve French 
106938c8a9a5SSteve French #define DEFINE_SMB3_CREDIT_EVENT(name)        \
107038c8a9a5SSteve French DEFINE_EVENT(smb3_credit_class, smb3_##name,  \
107138c8a9a5SSteve French 	TP_PROTO(__u64	currmid,		\
107238c8a9a5SSteve French 		__u64 conn_id,			\
107338c8a9a5SSteve French 		char *hostname,			\
107438c8a9a5SSteve French 		int  credits,			\
107538c8a9a5SSteve French 		int  credits_to_add,	\
107638c8a9a5SSteve French 		int in_flight),			\
107738c8a9a5SSteve French 	TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
107838c8a9a5SSteve French 
107938c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
108038c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
108138c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
108238c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
108338c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
108438c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(add_credits);
108538c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(adj_credits);
108638c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
108738c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
108838c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(pend_credits);
108938c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(wait_credits);
109038c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
109138c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
109238c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(set_credits);
109338c8a9a5SSteve French 
109438c8a9a5SSteve French #endif /* _CIFS_TRACE_H */
109538c8a9a5SSteve French 
109638c8a9a5SSteve French #undef TRACE_INCLUDE_PATH
109738c8a9a5SSteve French #define TRACE_INCLUDE_PATH .
109838c8a9a5SSteve French #define TRACE_INCLUDE_FILE trace
109938c8a9a5SSteve French #include <trace/define_trace.h>
1100