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