1*38c8a9a5SSteve French /* SPDX-License-Identifier: GPL-2.0 */ 2*38c8a9a5SSteve French /* 3*38c8a9a5SSteve French * Copyright (C) 2018, Microsoft Corporation. 4*38c8a9a5SSteve French * 5*38c8a9a5SSteve French * Author(s): Steve French <stfrench@microsoft.com> 6*38c8a9a5SSteve French */ 7*38c8a9a5SSteve French #undef TRACE_SYSTEM 8*38c8a9a5SSteve French #define TRACE_SYSTEM cifs 9*38c8a9a5SSteve French 10*38c8a9a5SSteve French #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 11*38c8a9a5SSteve French #define _CIFS_TRACE_H 12*38c8a9a5SSteve French 13*38c8a9a5SSteve French #include <linux/tracepoint.h> 14*38c8a9a5SSteve French #include <linux/net.h> 15*38c8a9a5SSteve French #include <linux/inet.h> 16*38c8a9a5SSteve French 17*38c8a9a5SSteve French /* 18*38c8a9a5SSteve French * Please use this 3-part article as a reference for writing new tracepoints: 19*38c8a9a5SSteve French * https://lwn.net/Articles/379903/ 20*38c8a9a5SSteve French */ 21*38c8a9a5SSteve French 22*38c8a9a5SSteve French /* For logging errors in read or write */ 23*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_rw_err_class, 24*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 25*38c8a9a5SSteve French __u64 fid, 26*38c8a9a5SSteve French __u32 tid, 27*38c8a9a5SSteve French __u64 sesid, 28*38c8a9a5SSteve French __u64 offset, 29*38c8a9a5SSteve French __u32 len, 30*38c8a9a5SSteve French int rc), 31*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, offset, len, rc), 32*38c8a9a5SSteve French TP_STRUCT__entry( 33*38c8a9a5SSteve French __field(unsigned int, xid) 34*38c8a9a5SSteve French __field(__u64, fid) 35*38c8a9a5SSteve French __field(__u32, tid) 36*38c8a9a5SSteve French __field(__u64, sesid) 37*38c8a9a5SSteve French __field(__u64, offset) 38*38c8a9a5SSteve French __field(__u32, len) 39*38c8a9a5SSteve French __field(int, rc) 40*38c8a9a5SSteve French ), 41*38c8a9a5SSteve French TP_fast_assign( 42*38c8a9a5SSteve French __entry->xid = xid; 43*38c8a9a5SSteve French __entry->fid = fid; 44*38c8a9a5SSteve French __entry->tid = tid; 45*38c8a9a5SSteve French __entry->sesid = sesid; 46*38c8a9a5SSteve French __entry->offset = offset; 47*38c8a9a5SSteve French __entry->len = len; 48*38c8a9a5SSteve French __entry->rc = rc; 49*38c8a9a5SSteve French ), 50*38c8a9a5SSteve French TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d", 51*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid, 52*38c8a9a5SSteve French __entry->offset, __entry->len, __entry->rc) 53*38c8a9a5SSteve French ) 54*38c8a9a5SSteve French 55*38c8a9a5SSteve French #define DEFINE_SMB3_RW_ERR_EVENT(name) \ 56*38c8a9a5SSteve French DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \ 57*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 58*38c8a9a5SSteve French __u64 fid, \ 59*38c8a9a5SSteve French __u32 tid, \ 60*38c8a9a5SSteve French __u64 sesid, \ 61*38c8a9a5SSteve French __u64 offset, \ 62*38c8a9a5SSteve French __u32 len, \ 63*38c8a9a5SSteve French int rc), \ 64*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, offset, len, rc)) 65*38c8a9a5SSteve French 66*38c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(write_err); 67*38c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(read_err); 68*38c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(query_dir_err); 69*38c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(zero_err); 70*38c8a9a5SSteve French DEFINE_SMB3_RW_ERR_EVENT(falloc_err); 71*38c8a9a5SSteve French 72*38c8a9a5SSteve French 73*38c8a9a5SSteve French /* For logging successful read or write */ 74*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_rw_done_class, 75*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 76*38c8a9a5SSteve French __u64 fid, 77*38c8a9a5SSteve French __u32 tid, 78*38c8a9a5SSteve French __u64 sesid, 79*38c8a9a5SSteve French __u64 offset, 80*38c8a9a5SSteve French __u32 len), 81*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, offset, len), 82*38c8a9a5SSteve French TP_STRUCT__entry( 83*38c8a9a5SSteve French __field(unsigned int, xid) 84*38c8a9a5SSteve French __field(__u64, fid) 85*38c8a9a5SSteve French __field(__u32, tid) 86*38c8a9a5SSteve French __field(__u64, sesid) 87*38c8a9a5SSteve French __field(__u64, offset) 88*38c8a9a5SSteve French __field(__u32, len) 89*38c8a9a5SSteve French ), 90*38c8a9a5SSteve French TP_fast_assign( 91*38c8a9a5SSteve French __entry->xid = xid; 92*38c8a9a5SSteve French __entry->fid = fid; 93*38c8a9a5SSteve French __entry->tid = tid; 94*38c8a9a5SSteve French __entry->sesid = sesid; 95*38c8a9a5SSteve French __entry->offset = offset; 96*38c8a9a5SSteve French __entry->len = len; 97*38c8a9a5SSteve French ), 98*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x", 99*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid, 100*38c8a9a5SSteve French __entry->offset, __entry->len) 101*38c8a9a5SSteve French ) 102*38c8a9a5SSteve French 103*38c8a9a5SSteve French #define DEFINE_SMB3_RW_DONE_EVENT(name) \ 104*38c8a9a5SSteve French DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \ 105*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 106*38c8a9a5SSteve French __u64 fid, \ 107*38c8a9a5SSteve French __u32 tid, \ 108*38c8a9a5SSteve French __u64 sesid, \ 109*38c8a9a5SSteve French __u64 offset, \ 110*38c8a9a5SSteve French __u32 len), \ 111*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, offset, len)) 112*38c8a9a5SSteve French 113*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(write_enter); 114*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(read_enter); 115*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter); 116*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(zero_enter); 117*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(falloc_enter); 118*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(write_done); 119*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(read_done); 120*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(query_dir_done); 121*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(zero_done); 122*38c8a9a5SSteve French DEFINE_SMB3_RW_DONE_EVENT(falloc_done); 123*38c8a9a5SSteve French 124*38c8a9a5SSteve French /* For logging successful set EOF (truncate) */ 125*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_eof_class, 126*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 127*38c8a9a5SSteve French __u64 fid, 128*38c8a9a5SSteve French __u32 tid, 129*38c8a9a5SSteve French __u64 sesid, 130*38c8a9a5SSteve French __u64 offset), 131*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, offset), 132*38c8a9a5SSteve French TP_STRUCT__entry( 133*38c8a9a5SSteve French __field(unsigned int, xid) 134*38c8a9a5SSteve French __field(__u64, fid) 135*38c8a9a5SSteve French __field(__u32, tid) 136*38c8a9a5SSteve French __field(__u64, sesid) 137*38c8a9a5SSteve French __field(__u64, offset) 138*38c8a9a5SSteve French ), 139*38c8a9a5SSteve French TP_fast_assign( 140*38c8a9a5SSteve French __entry->xid = xid; 141*38c8a9a5SSteve French __entry->fid = fid; 142*38c8a9a5SSteve French __entry->tid = tid; 143*38c8a9a5SSteve French __entry->sesid = sesid; 144*38c8a9a5SSteve French __entry->offset = offset; 145*38c8a9a5SSteve French ), 146*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx", 147*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid, 148*38c8a9a5SSteve French __entry->offset) 149*38c8a9a5SSteve French ) 150*38c8a9a5SSteve French 151*38c8a9a5SSteve French #define DEFINE_SMB3_EOF_EVENT(name) \ 152*38c8a9a5SSteve French DEFINE_EVENT(smb3_eof_class, smb3_##name, \ 153*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 154*38c8a9a5SSteve French __u64 fid, \ 155*38c8a9a5SSteve French __u32 tid, \ 156*38c8a9a5SSteve French __u64 sesid, \ 157*38c8a9a5SSteve French __u64 offset), \ 158*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, offset)) 159*38c8a9a5SSteve French 160*38c8a9a5SSteve French DEFINE_SMB3_EOF_EVENT(set_eof); 161*38c8a9a5SSteve French 162*38c8a9a5SSteve French /* 163*38c8a9a5SSteve French * For handle based calls other than read and write, and get/set info 164*38c8a9a5SSteve French */ 165*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_fd_class, 166*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 167*38c8a9a5SSteve French __u64 fid, 168*38c8a9a5SSteve French __u32 tid, 169*38c8a9a5SSteve French __u64 sesid), 170*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid), 171*38c8a9a5SSteve French TP_STRUCT__entry( 172*38c8a9a5SSteve French __field(unsigned int, xid) 173*38c8a9a5SSteve French __field(__u64, fid) 174*38c8a9a5SSteve French __field(__u32, tid) 175*38c8a9a5SSteve French __field(__u64, sesid) 176*38c8a9a5SSteve French ), 177*38c8a9a5SSteve French TP_fast_assign( 178*38c8a9a5SSteve French __entry->xid = xid; 179*38c8a9a5SSteve French __entry->fid = fid; 180*38c8a9a5SSteve French __entry->tid = tid; 181*38c8a9a5SSteve French __entry->sesid = sesid; 182*38c8a9a5SSteve French ), 183*38c8a9a5SSteve French TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx", 184*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid) 185*38c8a9a5SSteve French ) 186*38c8a9a5SSteve French 187*38c8a9a5SSteve French #define DEFINE_SMB3_FD_EVENT(name) \ 188*38c8a9a5SSteve French DEFINE_EVENT(smb3_fd_class, smb3_##name, \ 189*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 190*38c8a9a5SSteve French __u64 fid, \ 191*38c8a9a5SSteve French __u32 tid, \ 192*38c8a9a5SSteve French __u64 sesid), \ 193*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid)) 194*38c8a9a5SSteve French 195*38c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(flush_enter); 196*38c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(flush_done); 197*38c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(close_enter); 198*38c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(close_done); 199*38c8a9a5SSteve French DEFINE_SMB3_FD_EVENT(oplock_not_found); 200*38c8a9a5SSteve French 201*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_fd_err_class, 202*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 203*38c8a9a5SSteve French __u64 fid, 204*38c8a9a5SSteve French __u32 tid, 205*38c8a9a5SSteve French __u64 sesid, 206*38c8a9a5SSteve French int rc), 207*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, rc), 208*38c8a9a5SSteve French TP_STRUCT__entry( 209*38c8a9a5SSteve French __field(unsigned int, xid) 210*38c8a9a5SSteve French __field(__u64, fid) 211*38c8a9a5SSteve French __field(__u32, tid) 212*38c8a9a5SSteve French __field(__u64, sesid) 213*38c8a9a5SSteve French __field(int, rc) 214*38c8a9a5SSteve French ), 215*38c8a9a5SSteve French TP_fast_assign( 216*38c8a9a5SSteve French __entry->xid = xid; 217*38c8a9a5SSteve French __entry->fid = fid; 218*38c8a9a5SSteve French __entry->tid = tid; 219*38c8a9a5SSteve French __entry->sesid = sesid; 220*38c8a9a5SSteve French __entry->rc = rc; 221*38c8a9a5SSteve French ), 222*38c8a9a5SSteve French TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d", 223*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid, 224*38c8a9a5SSteve French __entry->rc) 225*38c8a9a5SSteve French ) 226*38c8a9a5SSteve French 227*38c8a9a5SSteve French #define DEFINE_SMB3_FD_ERR_EVENT(name) \ 228*38c8a9a5SSteve French DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \ 229*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 230*38c8a9a5SSteve French __u64 fid, \ 231*38c8a9a5SSteve French __u32 tid, \ 232*38c8a9a5SSteve French __u64 sesid, \ 233*38c8a9a5SSteve French int rc), \ 234*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, rc)) 235*38c8a9a5SSteve French 236*38c8a9a5SSteve French DEFINE_SMB3_FD_ERR_EVENT(flush_err); 237*38c8a9a5SSteve French DEFINE_SMB3_FD_ERR_EVENT(lock_err); 238*38c8a9a5SSteve French DEFINE_SMB3_FD_ERR_EVENT(close_err); 239*38c8a9a5SSteve French 240*38c8a9a5SSteve French /* 241*38c8a9a5SSteve French * For handle based query/set info calls 242*38c8a9a5SSteve French */ 243*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_enter_class, 244*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 245*38c8a9a5SSteve French __u64 fid, 246*38c8a9a5SSteve French __u32 tid, 247*38c8a9a5SSteve French __u64 sesid, 248*38c8a9a5SSteve French __u8 infclass, 249*38c8a9a5SSteve French __u32 type), 250*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, infclass, type), 251*38c8a9a5SSteve French TP_STRUCT__entry( 252*38c8a9a5SSteve French __field(unsigned int, xid) 253*38c8a9a5SSteve French __field(__u64, fid) 254*38c8a9a5SSteve French __field(__u32, tid) 255*38c8a9a5SSteve French __field(__u64, sesid) 256*38c8a9a5SSteve French __field(__u8, infclass) 257*38c8a9a5SSteve French __field(__u32, type) 258*38c8a9a5SSteve French ), 259*38c8a9a5SSteve French TP_fast_assign( 260*38c8a9a5SSteve French __entry->xid = xid; 261*38c8a9a5SSteve French __entry->fid = fid; 262*38c8a9a5SSteve French __entry->tid = tid; 263*38c8a9a5SSteve French __entry->sesid = sesid; 264*38c8a9a5SSteve French __entry->infclass = infclass; 265*38c8a9a5SSteve French __entry->type = type; 266*38c8a9a5SSteve French ), 267*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x", 268*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid, 269*38c8a9a5SSteve French __entry->infclass, __entry->type) 270*38c8a9a5SSteve French ) 271*38c8a9a5SSteve French 272*38c8a9a5SSteve French #define DEFINE_SMB3_INF_ENTER_EVENT(name) \ 273*38c8a9a5SSteve French DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \ 274*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 275*38c8a9a5SSteve French __u64 fid, \ 276*38c8a9a5SSteve French __u32 tid, \ 277*38c8a9a5SSteve French __u64 sesid, \ 278*38c8a9a5SSteve French __u8 infclass, \ 279*38c8a9a5SSteve French __u32 type), \ 280*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, infclass, type)) 281*38c8a9a5SSteve French 282*38c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter); 283*38c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(query_info_done); 284*38c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(notify_enter); 285*38c8a9a5SSteve French DEFINE_SMB3_INF_ENTER_EVENT(notify_done); 286*38c8a9a5SSteve French 287*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_err_class, 288*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 289*38c8a9a5SSteve French __u64 fid, 290*38c8a9a5SSteve French __u32 tid, 291*38c8a9a5SSteve French __u64 sesid, 292*38c8a9a5SSteve French __u8 infclass, 293*38c8a9a5SSteve French __u32 type, 294*38c8a9a5SSteve French int rc), 295*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, infclass, type, rc), 296*38c8a9a5SSteve French TP_STRUCT__entry( 297*38c8a9a5SSteve French __field(unsigned int, xid) 298*38c8a9a5SSteve French __field(__u64, fid) 299*38c8a9a5SSteve French __field(__u32, tid) 300*38c8a9a5SSteve French __field(__u64, sesid) 301*38c8a9a5SSteve French __field(__u8, infclass) 302*38c8a9a5SSteve French __field(__u32, type) 303*38c8a9a5SSteve French __field(int, rc) 304*38c8a9a5SSteve French ), 305*38c8a9a5SSteve French TP_fast_assign( 306*38c8a9a5SSteve French __entry->xid = xid; 307*38c8a9a5SSteve French __entry->fid = fid; 308*38c8a9a5SSteve French __entry->tid = tid; 309*38c8a9a5SSteve French __entry->sesid = sesid; 310*38c8a9a5SSteve French __entry->infclass = infclass; 311*38c8a9a5SSteve French __entry->type = type; 312*38c8a9a5SSteve French __entry->rc = rc; 313*38c8a9a5SSteve French ), 314*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d", 315*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid, 316*38c8a9a5SSteve French __entry->infclass, __entry->type, __entry->rc) 317*38c8a9a5SSteve French ) 318*38c8a9a5SSteve French 319*38c8a9a5SSteve French #define DEFINE_SMB3_INF_ERR_EVENT(name) \ 320*38c8a9a5SSteve French DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \ 321*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 322*38c8a9a5SSteve French __u64 fid, \ 323*38c8a9a5SSteve French __u32 tid, \ 324*38c8a9a5SSteve French __u64 sesid, \ 325*38c8a9a5SSteve French __u8 infclass, \ 326*38c8a9a5SSteve French __u32 type, \ 327*38c8a9a5SSteve French int rc), \ 328*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, infclass, type, rc)) 329*38c8a9a5SSteve French 330*38c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(query_info_err); 331*38c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(set_info_err); 332*38c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(notify_err); 333*38c8a9a5SSteve French DEFINE_SMB3_INF_ERR_EVENT(fsctl_err); 334*38c8a9a5SSteve French 335*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class, 336*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 337*38c8a9a5SSteve French __u32 tid, 338*38c8a9a5SSteve French __u64 sesid, 339*38c8a9a5SSteve French const char *full_path), 340*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, full_path), 341*38c8a9a5SSteve French TP_STRUCT__entry( 342*38c8a9a5SSteve French __field(unsigned int, xid) 343*38c8a9a5SSteve French __field(__u32, tid) 344*38c8a9a5SSteve French __field(__u64, sesid) 345*38c8a9a5SSteve French __string(path, full_path) 346*38c8a9a5SSteve French ), 347*38c8a9a5SSteve French TP_fast_assign( 348*38c8a9a5SSteve French __entry->xid = xid; 349*38c8a9a5SSteve French __entry->tid = tid; 350*38c8a9a5SSteve French __entry->sesid = sesid; 351*38c8a9a5SSteve French __assign_str(path, full_path); 352*38c8a9a5SSteve French ), 353*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s", 354*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, 355*38c8a9a5SSteve French __get_str(path)) 356*38c8a9a5SSteve French ) 357*38c8a9a5SSteve French 358*38c8a9a5SSteve French #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \ 359*38c8a9a5SSteve French DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \ 360*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 361*38c8a9a5SSteve French __u32 tid, \ 362*38c8a9a5SSteve French __u64 sesid, \ 363*38c8a9a5SSteve French const char *full_path), \ 364*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, full_path)) 365*38c8a9a5SSteve French 366*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter); 367*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter); 368*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter); 369*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter); 370*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter); 371*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter); 372*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter); 373*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter); 374*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter); 375*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter); 376*38c8a9a5SSteve French 377*38c8a9a5SSteve French 378*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_compound_done_class, 379*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 380*38c8a9a5SSteve French __u32 tid, 381*38c8a9a5SSteve French __u64 sesid), 382*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid), 383*38c8a9a5SSteve French TP_STRUCT__entry( 384*38c8a9a5SSteve French __field(unsigned int, xid) 385*38c8a9a5SSteve French __field(__u32, tid) 386*38c8a9a5SSteve French __field(__u64, sesid) 387*38c8a9a5SSteve French ), 388*38c8a9a5SSteve French TP_fast_assign( 389*38c8a9a5SSteve French __entry->xid = xid; 390*38c8a9a5SSteve French __entry->tid = tid; 391*38c8a9a5SSteve French __entry->sesid = sesid; 392*38c8a9a5SSteve French ), 393*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x", 394*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid) 395*38c8a9a5SSteve French ) 396*38c8a9a5SSteve French 397*38c8a9a5SSteve French #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \ 398*38c8a9a5SSteve French DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \ 399*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 400*38c8a9a5SSteve French __u32 tid, \ 401*38c8a9a5SSteve French __u64 sesid), \ 402*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid)) 403*38c8a9a5SSteve French 404*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done); 405*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done); 406*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done); 407*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done); 408*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done); 409*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done); 410*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done); 411*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done); 412*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done); 413*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done); 414*38c8a9a5SSteve French 415*38c8a9a5SSteve French 416*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_inf_compound_err_class, 417*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 418*38c8a9a5SSteve French __u32 tid, 419*38c8a9a5SSteve French __u64 sesid, 420*38c8a9a5SSteve French int rc), 421*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, rc), 422*38c8a9a5SSteve French TP_STRUCT__entry( 423*38c8a9a5SSteve French __field(unsigned int, xid) 424*38c8a9a5SSteve French __field(__u32, tid) 425*38c8a9a5SSteve French __field(__u64, sesid) 426*38c8a9a5SSteve French __field(int, rc) 427*38c8a9a5SSteve French ), 428*38c8a9a5SSteve French TP_fast_assign( 429*38c8a9a5SSteve French __entry->xid = xid; 430*38c8a9a5SSteve French __entry->tid = tid; 431*38c8a9a5SSteve French __entry->sesid = sesid; 432*38c8a9a5SSteve French __entry->rc = rc; 433*38c8a9a5SSteve French ), 434*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d", 435*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, 436*38c8a9a5SSteve French __entry->rc) 437*38c8a9a5SSteve French ) 438*38c8a9a5SSteve French 439*38c8a9a5SSteve French #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \ 440*38c8a9a5SSteve French DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \ 441*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 442*38c8a9a5SSteve French __u32 tid, \ 443*38c8a9a5SSteve French __u64 sesid, \ 444*38c8a9a5SSteve French int rc), \ 445*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, rc)) 446*38c8a9a5SSteve French 447*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err); 448*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err); 449*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err); 450*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err); 451*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err); 452*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err); 453*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err); 454*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err); 455*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err); 456*38c8a9a5SSteve French DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err); 457*38c8a9a5SSteve French 458*38c8a9a5SSteve French /* 459*38c8a9a5SSteve French * For logging SMB3 Status code and Command for responses which return errors 460*38c8a9a5SSteve French */ 461*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_cmd_err_class, 462*38c8a9a5SSteve French TP_PROTO(__u32 tid, 463*38c8a9a5SSteve French __u64 sesid, 464*38c8a9a5SSteve French __u16 cmd, 465*38c8a9a5SSteve French __u64 mid, 466*38c8a9a5SSteve French __u32 status, 467*38c8a9a5SSteve French int rc), 468*38c8a9a5SSteve French TP_ARGS(tid, sesid, cmd, mid, status, rc), 469*38c8a9a5SSteve French TP_STRUCT__entry( 470*38c8a9a5SSteve French __field(__u32, tid) 471*38c8a9a5SSteve French __field(__u64, sesid) 472*38c8a9a5SSteve French __field(__u16, cmd) 473*38c8a9a5SSteve French __field(__u64, mid) 474*38c8a9a5SSteve French __field(__u32, status) 475*38c8a9a5SSteve French __field(int, rc) 476*38c8a9a5SSteve French ), 477*38c8a9a5SSteve French TP_fast_assign( 478*38c8a9a5SSteve French __entry->tid = tid; 479*38c8a9a5SSteve French __entry->sesid = sesid; 480*38c8a9a5SSteve French __entry->cmd = cmd; 481*38c8a9a5SSteve French __entry->mid = mid; 482*38c8a9a5SSteve French __entry->status = status; 483*38c8a9a5SSteve French __entry->rc = rc; 484*38c8a9a5SSteve French ), 485*38c8a9a5SSteve French TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d", 486*38c8a9a5SSteve French __entry->sesid, __entry->tid, __entry->cmd, __entry->mid, 487*38c8a9a5SSteve French __entry->status, __entry->rc) 488*38c8a9a5SSteve French ) 489*38c8a9a5SSteve French 490*38c8a9a5SSteve French #define DEFINE_SMB3_CMD_ERR_EVENT(name) \ 491*38c8a9a5SSteve French DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \ 492*38c8a9a5SSteve French TP_PROTO(__u32 tid, \ 493*38c8a9a5SSteve French __u64 sesid, \ 494*38c8a9a5SSteve French __u16 cmd, \ 495*38c8a9a5SSteve French __u64 mid, \ 496*38c8a9a5SSteve French __u32 status, \ 497*38c8a9a5SSteve French int rc), \ 498*38c8a9a5SSteve French TP_ARGS(tid, sesid, cmd, mid, status, rc)) 499*38c8a9a5SSteve French 500*38c8a9a5SSteve French DEFINE_SMB3_CMD_ERR_EVENT(cmd_err); 501*38c8a9a5SSteve French 502*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_cmd_done_class, 503*38c8a9a5SSteve French TP_PROTO(__u32 tid, 504*38c8a9a5SSteve French __u64 sesid, 505*38c8a9a5SSteve French __u16 cmd, 506*38c8a9a5SSteve French __u64 mid), 507*38c8a9a5SSteve French TP_ARGS(tid, sesid, cmd, mid), 508*38c8a9a5SSteve French TP_STRUCT__entry( 509*38c8a9a5SSteve French __field(__u32, tid) 510*38c8a9a5SSteve French __field(__u64, sesid) 511*38c8a9a5SSteve French __field(__u16, cmd) 512*38c8a9a5SSteve French __field(__u64, mid) 513*38c8a9a5SSteve French ), 514*38c8a9a5SSteve French TP_fast_assign( 515*38c8a9a5SSteve French __entry->tid = tid; 516*38c8a9a5SSteve French __entry->sesid = sesid; 517*38c8a9a5SSteve French __entry->cmd = cmd; 518*38c8a9a5SSteve French __entry->mid = mid; 519*38c8a9a5SSteve French ), 520*38c8a9a5SSteve French TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu", 521*38c8a9a5SSteve French __entry->sesid, __entry->tid, 522*38c8a9a5SSteve French __entry->cmd, __entry->mid) 523*38c8a9a5SSteve French ) 524*38c8a9a5SSteve French 525*38c8a9a5SSteve French #define DEFINE_SMB3_CMD_DONE_EVENT(name) \ 526*38c8a9a5SSteve French DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \ 527*38c8a9a5SSteve French TP_PROTO(__u32 tid, \ 528*38c8a9a5SSteve French __u64 sesid, \ 529*38c8a9a5SSteve French __u16 cmd, \ 530*38c8a9a5SSteve French __u64 mid), \ 531*38c8a9a5SSteve French TP_ARGS(tid, sesid, cmd, mid)) 532*38c8a9a5SSteve French 533*38c8a9a5SSteve French DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter); 534*38c8a9a5SSteve French DEFINE_SMB3_CMD_DONE_EVENT(cmd_done); 535*38c8a9a5SSteve French DEFINE_SMB3_CMD_DONE_EVENT(ses_expired); 536*38c8a9a5SSteve French 537*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_mid_class, 538*38c8a9a5SSteve French TP_PROTO(__u16 cmd, 539*38c8a9a5SSteve French __u64 mid, 540*38c8a9a5SSteve French __u32 pid, 541*38c8a9a5SSteve French unsigned long when_sent, 542*38c8a9a5SSteve French unsigned long when_received), 543*38c8a9a5SSteve French TP_ARGS(cmd, mid, pid, when_sent, when_received), 544*38c8a9a5SSteve French TP_STRUCT__entry( 545*38c8a9a5SSteve French __field(__u16, cmd) 546*38c8a9a5SSteve French __field(__u64, mid) 547*38c8a9a5SSteve French __field(__u32, pid) 548*38c8a9a5SSteve French __field(unsigned long, when_sent) 549*38c8a9a5SSteve French __field(unsigned long, when_received) 550*38c8a9a5SSteve French ), 551*38c8a9a5SSteve French TP_fast_assign( 552*38c8a9a5SSteve French __entry->cmd = cmd; 553*38c8a9a5SSteve French __entry->mid = mid; 554*38c8a9a5SSteve French __entry->pid = pid; 555*38c8a9a5SSteve French __entry->when_sent = when_sent; 556*38c8a9a5SSteve French __entry->when_received = when_received; 557*38c8a9a5SSteve French ), 558*38c8a9a5SSteve French TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu", 559*38c8a9a5SSteve French __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent, 560*38c8a9a5SSteve French __entry->when_received) 561*38c8a9a5SSteve French ) 562*38c8a9a5SSteve French 563*38c8a9a5SSteve French #define DEFINE_SMB3_MID_EVENT(name) \ 564*38c8a9a5SSteve French DEFINE_EVENT(smb3_mid_class, smb3_##name, \ 565*38c8a9a5SSteve French TP_PROTO(__u16 cmd, \ 566*38c8a9a5SSteve French __u64 mid, \ 567*38c8a9a5SSteve French __u32 pid, \ 568*38c8a9a5SSteve French unsigned long when_sent, \ 569*38c8a9a5SSteve French unsigned long when_received), \ 570*38c8a9a5SSteve French TP_ARGS(cmd, mid, pid, when_sent, when_received)) 571*38c8a9a5SSteve French 572*38c8a9a5SSteve French DEFINE_SMB3_MID_EVENT(slow_rsp); 573*38c8a9a5SSteve French 574*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_exit_err_class, 575*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 576*38c8a9a5SSteve French const char *func_name, 577*38c8a9a5SSteve French int rc), 578*38c8a9a5SSteve French TP_ARGS(xid, func_name, rc), 579*38c8a9a5SSteve French TP_STRUCT__entry( 580*38c8a9a5SSteve French __field(unsigned int, xid) 581*38c8a9a5SSteve French __string(func_name, func_name) 582*38c8a9a5SSteve French __field(int, rc) 583*38c8a9a5SSteve French ), 584*38c8a9a5SSteve French TP_fast_assign( 585*38c8a9a5SSteve French __entry->xid = xid; 586*38c8a9a5SSteve French __assign_str(func_name, func_name); 587*38c8a9a5SSteve French __entry->rc = rc; 588*38c8a9a5SSteve French ), 589*38c8a9a5SSteve French TP_printk("\t%s: xid=%u rc=%d", 590*38c8a9a5SSteve French __get_str(func_name), __entry->xid, __entry->rc) 591*38c8a9a5SSteve French ) 592*38c8a9a5SSteve French 593*38c8a9a5SSteve French #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \ 594*38c8a9a5SSteve French DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \ 595*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 596*38c8a9a5SSteve French const char *func_name, \ 597*38c8a9a5SSteve French int rc), \ 598*38c8a9a5SSteve French TP_ARGS(xid, func_name, rc)) 599*38c8a9a5SSteve French 600*38c8a9a5SSteve French DEFINE_SMB3_EXIT_ERR_EVENT(exit_err); 601*38c8a9a5SSteve French 602*38c8a9a5SSteve French 603*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_sync_err_class, 604*38c8a9a5SSteve French TP_PROTO(unsigned long ino, 605*38c8a9a5SSteve French int rc), 606*38c8a9a5SSteve French TP_ARGS(ino, rc), 607*38c8a9a5SSteve French TP_STRUCT__entry( 608*38c8a9a5SSteve French __field(unsigned long, ino) 609*38c8a9a5SSteve French __field(int, rc) 610*38c8a9a5SSteve French ), 611*38c8a9a5SSteve French TP_fast_assign( 612*38c8a9a5SSteve French __entry->ino = ino; 613*38c8a9a5SSteve French __entry->rc = rc; 614*38c8a9a5SSteve French ), 615*38c8a9a5SSteve French TP_printk("\tino=%lu rc=%d", 616*38c8a9a5SSteve French __entry->ino, __entry->rc) 617*38c8a9a5SSteve French ) 618*38c8a9a5SSteve French 619*38c8a9a5SSteve French #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \ 620*38c8a9a5SSteve French DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \ 621*38c8a9a5SSteve French TP_PROTO(unsigned long ino, \ 622*38c8a9a5SSteve French int rc), \ 623*38c8a9a5SSteve French TP_ARGS(ino, rc)) 624*38c8a9a5SSteve French 625*38c8a9a5SSteve French DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err); 626*38c8a9a5SSteve French DEFINE_SMB3_SYNC_ERR_EVENT(flush_err); 627*38c8a9a5SSteve French 628*38c8a9a5SSteve French 629*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_enter_exit_class, 630*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 631*38c8a9a5SSteve French const char *func_name), 632*38c8a9a5SSteve French TP_ARGS(xid, func_name), 633*38c8a9a5SSteve French TP_STRUCT__entry( 634*38c8a9a5SSteve French __field(unsigned int, xid) 635*38c8a9a5SSteve French __string(func_name, func_name) 636*38c8a9a5SSteve French ), 637*38c8a9a5SSteve French TP_fast_assign( 638*38c8a9a5SSteve French __entry->xid = xid; 639*38c8a9a5SSteve French __assign_str(func_name, func_name); 640*38c8a9a5SSteve French ), 641*38c8a9a5SSteve French TP_printk("\t%s: xid=%u", 642*38c8a9a5SSteve French __get_str(func_name), __entry->xid) 643*38c8a9a5SSteve French ) 644*38c8a9a5SSteve French 645*38c8a9a5SSteve French #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \ 646*38c8a9a5SSteve French DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \ 647*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 648*38c8a9a5SSteve French const char *func_name), \ 649*38c8a9a5SSteve French TP_ARGS(xid, func_name)) 650*38c8a9a5SSteve French 651*38c8a9a5SSteve French DEFINE_SMB3_ENTER_EXIT_EVENT(enter); 652*38c8a9a5SSteve French DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done); 653*38c8a9a5SSteve French 654*38c8a9a5SSteve French /* 655*38c8a9a5SSteve French * For SMB2/SMB3 tree connect 656*38c8a9a5SSteve French */ 657*38c8a9a5SSteve French 658*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_tcon_class, 659*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 660*38c8a9a5SSteve French __u32 tid, 661*38c8a9a5SSteve French __u64 sesid, 662*38c8a9a5SSteve French const char *unc_name, 663*38c8a9a5SSteve French int rc), 664*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, unc_name, rc), 665*38c8a9a5SSteve French TP_STRUCT__entry( 666*38c8a9a5SSteve French __field(unsigned int, xid) 667*38c8a9a5SSteve French __field(__u32, tid) 668*38c8a9a5SSteve French __field(__u64, sesid) 669*38c8a9a5SSteve French __string(name, unc_name) 670*38c8a9a5SSteve French __field(int, rc) 671*38c8a9a5SSteve French ), 672*38c8a9a5SSteve French TP_fast_assign( 673*38c8a9a5SSteve French __entry->xid = xid; 674*38c8a9a5SSteve French __entry->tid = tid; 675*38c8a9a5SSteve French __entry->sesid = sesid; 676*38c8a9a5SSteve French __assign_str(name, unc_name); 677*38c8a9a5SSteve French __entry->rc = rc; 678*38c8a9a5SSteve French ), 679*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d", 680*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, 681*38c8a9a5SSteve French __get_str(name), __entry->rc) 682*38c8a9a5SSteve French ) 683*38c8a9a5SSteve French 684*38c8a9a5SSteve French #define DEFINE_SMB3_TCON_EVENT(name) \ 685*38c8a9a5SSteve French DEFINE_EVENT(smb3_tcon_class, smb3_##name, \ 686*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 687*38c8a9a5SSteve French __u32 tid, \ 688*38c8a9a5SSteve French __u64 sesid, \ 689*38c8a9a5SSteve French const char *unc_name, \ 690*38c8a9a5SSteve French int rc), \ 691*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, unc_name, rc)) 692*38c8a9a5SSteve French 693*38c8a9a5SSteve French DEFINE_SMB3_TCON_EVENT(tcon); 694*38c8a9a5SSteve French 695*38c8a9a5SSteve French 696*38c8a9a5SSteve French /* 697*38c8a9a5SSteve French * For smb2/smb3 open (including create and mkdir) calls 698*38c8a9a5SSteve French */ 699*38c8a9a5SSteve French 700*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_open_enter_class, 701*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 702*38c8a9a5SSteve French __u32 tid, 703*38c8a9a5SSteve French __u64 sesid, 704*38c8a9a5SSteve French const char *full_path, 705*38c8a9a5SSteve French int create_options, 706*38c8a9a5SSteve French int desired_access), 707*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access), 708*38c8a9a5SSteve French TP_STRUCT__entry( 709*38c8a9a5SSteve French __field(unsigned int, xid) 710*38c8a9a5SSteve French __field(__u32, tid) 711*38c8a9a5SSteve French __field(__u64, sesid) 712*38c8a9a5SSteve French __string(path, full_path) 713*38c8a9a5SSteve French __field(int, create_options) 714*38c8a9a5SSteve French __field(int, desired_access) 715*38c8a9a5SSteve French ), 716*38c8a9a5SSteve French TP_fast_assign( 717*38c8a9a5SSteve French __entry->xid = xid; 718*38c8a9a5SSteve French __entry->tid = tid; 719*38c8a9a5SSteve French __entry->sesid = sesid; 720*38c8a9a5SSteve French __assign_str(path, full_path); 721*38c8a9a5SSteve French __entry->create_options = create_options; 722*38c8a9a5SSteve French __entry->desired_access = desired_access; 723*38c8a9a5SSteve French ), 724*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s cr_opts=0x%x des_access=0x%x", 725*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __get_str(path), 726*38c8a9a5SSteve French __entry->create_options, __entry->desired_access) 727*38c8a9a5SSteve French ) 728*38c8a9a5SSteve French 729*38c8a9a5SSteve French #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \ 730*38c8a9a5SSteve French DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \ 731*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 732*38c8a9a5SSteve French __u32 tid, \ 733*38c8a9a5SSteve French __u64 sesid, \ 734*38c8a9a5SSteve French const char *full_path, \ 735*38c8a9a5SSteve French int create_options, \ 736*38c8a9a5SSteve French int desired_access), \ 737*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access)) 738*38c8a9a5SSteve French 739*38c8a9a5SSteve French DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter); 740*38c8a9a5SSteve French DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter); 741*38c8a9a5SSteve French 742*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_open_err_class, 743*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 744*38c8a9a5SSteve French __u32 tid, 745*38c8a9a5SSteve French __u64 sesid, 746*38c8a9a5SSteve French int create_options, 747*38c8a9a5SSteve French int desired_access, 748*38c8a9a5SSteve French int rc), 749*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, create_options, desired_access, rc), 750*38c8a9a5SSteve French TP_STRUCT__entry( 751*38c8a9a5SSteve French __field(unsigned int, xid) 752*38c8a9a5SSteve French __field(__u32, tid) 753*38c8a9a5SSteve French __field(__u64, sesid) 754*38c8a9a5SSteve French __field(int, create_options) 755*38c8a9a5SSteve French __field(int, desired_access) 756*38c8a9a5SSteve French __field(int, rc) 757*38c8a9a5SSteve French ), 758*38c8a9a5SSteve French TP_fast_assign( 759*38c8a9a5SSteve French __entry->xid = xid; 760*38c8a9a5SSteve French __entry->tid = tid; 761*38c8a9a5SSteve French __entry->sesid = sesid; 762*38c8a9a5SSteve French __entry->create_options = create_options; 763*38c8a9a5SSteve French __entry->desired_access = desired_access; 764*38c8a9a5SSteve French __entry->rc = rc; 765*38c8a9a5SSteve French ), 766*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d", 767*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, 768*38c8a9a5SSteve French __entry->create_options, __entry->desired_access, __entry->rc) 769*38c8a9a5SSteve French ) 770*38c8a9a5SSteve French 771*38c8a9a5SSteve French #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \ 772*38c8a9a5SSteve French DEFINE_EVENT(smb3_open_err_class, smb3_##name, \ 773*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 774*38c8a9a5SSteve French __u32 tid, \ 775*38c8a9a5SSteve French __u64 sesid, \ 776*38c8a9a5SSteve French int create_options, \ 777*38c8a9a5SSteve French int desired_access, \ 778*38c8a9a5SSteve French int rc), \ 779*38c8a9a5SSteve French TP_ARGS(xid, tid, sesid, create_options, desired_access, rc)) 780*38c8a9a5SSteve French 781*38c8a9a5SSteve French DEFINE_SMB3_OPEN_ERR_EVENT(open_err); 782*38c8a9a5SSteve French DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err); 783*38c8a9a5SSteve French 784*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_open_done_class, 785*38c8a9a5SSteve French TP_PROTO(unsigned int xid, 786*38c8a9a5SSteve French __u64 fid, 787*38c8a9a5SSteve French __u32 tid, 788*38c8a9a5SSteve French __u64 sesid, 789*38c8a9a5SSteve French int create_options, 790*38c8a9a5SSteve French int desired_access), 791*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, create_options, desired_access), 792*38c8a9a5SSteve French TP_STRUCT__entry( 793*38c8a9a5SSteve French __field(unsigned int, xid) 794*38c8a9a5SSteve French __field(__u64, fid) 795*38c8a9a5SSteve French __field(__u32, tid) 796*38c8a9a5SSteve French __field(__u64, sesid) 797*38c8a9a5SSteve French __field(int, create_options) 798*38c8a9a5SSteve French __field(int, desired_access) 799*38c8a9a5SSteve French ), 800*38c8a9a5SSteve French TP_fast_assign( 801*38c8a9a5SSteve French __entry->xid = xid; 802*38c8a9a5SSteve French __entry->fid = fid; 803*38c8a9a5SSteve French __entry->tid = tid; 804*38c8a9a5SSteve French __entry->sesid = sesid; 805*38c8a9a5SSteve French __entry->create_options = create_options; 806*38c8a9a5SSteve French __entry->desired_access = desired_access; 807*38c8a9a5SSteve French ), 808*38c8a9a5SSteve French TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x", 809*38c8a9a5SSteve French __entry->xid, __entry->sesid, __entry->tid, __entry->fid, 810*38c8a9a5SSteve French __entry->create_options, __entry->desired_access) 811*38c8a9a5SSteve French ) 812*38c8a9a5SSteve French 813*38c8a9a5SSteve French #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \ 814*38c8a9a5SSteve French DEFINE_EVENT(smb3_open_done_class, smb3_##name, \ 815*38c8a9a5SSteve French TP_PROTO(unsigned int xid, \ 816*38c8a9a5SSteve French __u64 fid, \ 817*38c8a9a5SSteve French __u32 tid, \ 818*38c8a9a5SSteve French __u64 sesid, \ 819*38c8a9a5SSteve French int create_options, \ 820*38c8a9a5SSteve French int desired_access), \ 821*38c8a9a5SSteve French TP_ARGS(xid, fid, tid, sesid, create_options, desired_access)) 822*38c8a9a5SSteve French 823*38c8a9a5SSteve French DEFINE_SMB3_OPEN_DONE_EVENT(open_done); 824*38c8a9a5SSteve French DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done); 825*38c8a9a5SSteve French 826*38c8a9a5SSteve French 827*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_lease_done_class, 828*38c8a9a5SSteve French TP_PROTO(__u32 lease_state, 829*38c8a9a5SSteve French __u32 tid, 830*38c8a9a5SSteve French __u64 sesid, 831*38c8a9a5SSteve French __u64 lease_key_low, 832*38c8a9a5SSteve French __u64 lease_key_high), 833*38c8a9a5SSteve French TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high), 834*38c8a9a5SSteve French TP_STRUCT__entry( 835*38c8a9a5SSteve French __field(__u32, lease_state) 836*38c8a9a5SSteve French __field(__u32, tid) 837*38c8a9a5SSteve French __field(__u64, sesid) 838*38c8a9a5SSteve French __field(__u64, lease_key_low) 839*38c8a9a5SSteve French __field(__u64, lease_key_high) 840*38c8a9a5SSteve French ), 841*38c8a9a5SSteve French TP_fast_assign( 842*38c8a9a5SSteve French __entry->lease_state = lease_state; 843*38c8a9a5SSteve French __entry->tid = tid; 844*38c8a9a5SSteve French __entry->sesid = sesid; 845*38c8a9a5SSteve French __entry->lease_key_low = lease_key_low; 846*38c8a9a5SSteve French __entry->lease_key_high = lease_key_high; 847*38c8a9a5SSteve French ), 848*38c8a9a5SSteve French TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x", 849*38c8a9a5SSteve French __entry->sesid, __entry->tid, __entry->lease_key_high, 850*38c8a9a5SSteve French __entry->lease_key_low, __entry->lease_state) 851*38c8a9a5SSteve French ) 852*38c8a9a5SSteve French 853*38c8a9a5SSteve French #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \ 854*38c8a9a5SSteve French DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \ 855*38c8a9a5SSteve French TP_PROTO(__u32 lease_state, \ 856*38c8a9a5SSteve French __u32 tid, \ 857*38c8a9a5SSteve French __u64 sesid, \ 858*38c8a9a5SSteve French __u64 lease_key_low, \ 859*38c8a9a5SSteve French __u64 lease_key_high), \ 860*38c8a9a5SSteve French TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high)) 861*38c8a9a5SSteve French 862*38c8a9a5SSteve French DEFINE_SMB3_LEASE_DONE_EVENT(lease_done); 863*38c8a9a5SSteve French DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found); 864*38c8a9a5SSteve French 865*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_lease_err_class, 866*38c8a9a5SSteve French TP_PROTO(__u32 lease_state, 867*38c8a9a5SSteve French __u32 tid, 868*38c8a9a5SSteve French __u64 sesid, 869*38c8a9a5SSteve French __u64 lease_key_low, 870*38c8a9a5SSteve French __u64 lease_key_high, 871*38c8a9a5SSteve French int rc), 872*38c8a9a5SSteve French TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc), 873*38c8a9a5SSteve French TP_STRUCT__entry( 874*38c8a9a5SSteve French __field(__u32, lease_state) 875*38c8a9a5SSteve French __field(__u32, tid) 876*38c8a9a5SSteve French __field(__u64, sesid) 877*38c8a9a5SSteve French __field(__u64, lease_key_low) 878*38c8a9a5SSteve French __field(__u64, lease_key_high) 879*38c8a9a5SSteve French __field(int, rc) 880*38c8a9a5SSteve French ), 881*38c8a9a5SSteve French TP_fast_assign( 882*38c8a9a5SSteve French __entry->lease_state = lease_state; 883*38c8a9a5SSteve French __entry->tid = tid; 884*38c8a9a5SSteve French __entry->sesid = sesid; 885*38c8a9a5SSteve French __entry->lease_key_low = lease_key_low; 886*38c8a9a5SSteve French __entry->lease_key_high = lease_key_high; 887*38c8a9a5SSteve French __entry->rc = rc; 888*38c8a9a5SSteve French ), 889*38c8a9a5SSteve French TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d", 890*38c8a9a5SSteve French __entry->sesid, __entry->tid, __entry->lease_key_high, 891*38c8a9a5SSteve French __entry->lease_key_low, __entry->lease_state, __entry->rc) 892*38c8a9a5SSteve French ) 893*38c8a9a5SSteve French 894*38c8a9a5SSteve French #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \ 895*38c8a9a5SSteve French DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \ 896*38c8a9a5SSteve French TP_PROTO(__u32 lease_state, \ 897*38c8a9a5SSteve French __u32 tid, \ 898*38c8a9a5SSteve French __u64 sesid, \ 899*38c8a9a5SSteve French __u64 lease_key_low, \ 900*38c8a9a5SSteve French __u64 lease_key_high, \ 901*38c8a9a5SSteve French int rc), \ 902*38c8a9a5SSteve French TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc)) 903*38c8a9a5SSteve French 904*38c8a9a5SSteve French DEFINE_SMB3_LEASE_ERR_EVENT(lease_err); 905*38c8a9a5SSteve French 906*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_connect_class, 907*38c8a9a5SSteve French TP_PROTO(char *hostname, 908*38c8a9a5SSteve French __u64 conn_id, 909*38c8a9a5SSteve French const struct __kernel_sockaddr_storage *dst_addr), 910*38c8a9a5SSteve French TP_ARGS(hostname, conn_id, dst_addr), 911*38c8a9a5SSteve French TP_STRUCT__entry( 912*38c8a9a5SSteve French __string(hostname, hostname) 913*38c8a9a5SSteve French __field(__u64, conn_id) 914*38c8a9a5SSteve French __array(__u8, dst_addr, sizeof(struct sockaddr_storage)) 915*38c8a9a5SSteve French ), 916*38c8a9a5SSteve French TP_fast_assign( 917*38c8a9a5SSteve French struct sockaddr_storage *pss = NULL; 918*38c8a9a5SSteve French 919*38c8a9a5SSteve French __entry->conn_id = conn_id; 920*38c8a9a5SSteve French pss = (struct sockaddr_storage *)__entry->dst_addr; 921*38c8a9a5SSteve French *pss = *dst_addr; 922*38c8a9a5SSteve French __assign_str(hostname, hostname); 923*38c8a9a5SSteve French ), 924*38c8a9a5SSteve French TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc", 925*38c8a9a5SSteve French __entry->conn_id, 926*38c8a9a5SSteve French __get_str(hostname), 927*38c8a9a5SSteve French __entry->dst_addr) 928*38c8a9a5SSteve French ) 929*38c8a9a5SSteve French 930*38c8a9a5SSteve French #define DEFINE_SMB3_CONNECT_EVENT(name) \ 931*38c8a9a5SSteve French DEFINE_EVENT(smb3_connect_class, smb3_##name, \ 932*38c8a9a5SSteve French TP_PROTO(char *hostname, \ 933*38c8a9a5SSteve French __u64 conn_id, \ 934*38c8a9a5SSteve French const struct __kernel_sockaddr_storage *addr), \ 935*38c8a9a5SSteve French TP_ARGS(hostname, conn_id, addr)) 936*38c8a9a5SSteve French 937*38c8a9a5SSteve French DEFINE_SMB3_CONNECT_EVENT(connect_done); 938*38c8a9a5SSteve French 939*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_connect_err_class, 940*38c8a9a5SSteve French TP_PROTO(char *hostname, __u64 conn_id, 941*38c8a9a5SSteve French const struct __kernel_sockaddr_storage *dst_addr, int rc), 942*38c8a9a5SSteve French TP_ARGS(hostname, conn_id, dst_addr, rc), 943*38c8a9a5SSteve French TP_STRUCT__entry( 944*38c8a9a5SSteve French __string(hostname, hostname) 945*38c8a9a5SSteve French __field(__u64, conn_id) 946*38c8a9a5SSteve French __array(__u8, dst_addr, sizeof(struct sockaddr_storage)) 947*38c8a9a5SSteve French __field(int, rc) 948*38c8a9a5SSteve French ), 949*38c8a9a5SSteve French TP_fast_assign( 950*38c8a9a5SSteve French struct sockaddr_storage *pss = NULL; 951*38c8a9a5SSteve French 952*38c8a9a5SSteve French __entry->conn_id = conn_id; 953*38c8a9a5SSteve French __entry->rc = rc; 954*38c8a9a5SSteve French pss = (struct sockaddr_storage *)__entry->dst_addr; 955*38c8a9a5SSteve French *pss = *dst_addr; 956*38c8a9a5SSteve French __assign_str(hostname, hostname); 957*38c8a9a5SSteve French ), 958*38c8a9a5SSteve French TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc", 959*38c8a9a5SSteve French __entry->rc, 960*38c8a9a5SSteve French __entry->conn_id, 961*38c8a9a5SSteve French __get_str(hostname), 962*38c8a9a5SSteve French __entry->dst_addr) 963*38c8a9a5SSteve French ) 964*38c8a9a5SSteve French 965*38c8a9a5SSteve French #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \ 966*38c8a9a5SSteve French DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \ 967*38c8a9a5SSteve French TP_PROTO(char *hostname, \ 968*38c8a9a5SSteve French __u64 conn_id, \ 969*38c8a9a5SSteve French const struct __kernel_sockaddr_storage *addr, \ 970*38c8a9a5SSteve French int rc), \ 971*38c8a9a5SSteve French TP_ARGS(hostname, conn_id, addr, rc)) 972*38c8a9a5SSteve French 973*38c8a9a5SSteve French DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err); 974*38c8a9a5SSteve French 975*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_reconnect_class, 976*38c8a9a5SSteve French TP_PROTO(__u64 currmid, 977*38c8a9a5SSteve French __u64 conn_id, 978*38c8a9a5SSteve French char *hostname), 979*38c8a9a5SSteve French TP_ARGS(currmid, conn_id, hostname), 980*38c8a9a5SSteve French TP_STRUCT__entry( 981*38c8a9a5SSteve French __field(__u64, currmid) 982*38c8a9a5SSteve French __field(__u64, conn_id) 983*38c8a9a5SSteve French __string(hostname, hostname) 984*38c8a9a5SSteve French ), 985*38c8a9a5SSteve French TP_fast_assign( 986*38c8a9a5SSteve French __entry->currmid = currmid; 987*38c8a9a5SSteve French __entry->conn_id = conn_id; 988*38c8a9a5SSteve French __assign_str(hostname, hostname); 989*38c8a9a5SSteve French ), 990*38c8a9a5SSteve French TP_printk("conn_id=0x%llx server=%s current_mid=%llu", 991*38c8a9a5SSteve French __entry->conn_id, 992*38c8a9a5SSteve French __get_str(hostname), 993*38c8a9a5SSteve French __entry->currmid) 994*38c8a9a5SSteve French ) 995*38c8a9a5SSteve French 996*38c8a9a5SSteve French #define DEFINE_SMB3_RECONNECT_EVENT(name) \ 997*38c8a9a5SSteve French DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \ 998*38c8a9a5SSteve French TP_PROTO(__u64 currmid, \ 999*38c8a9a5SSteve French __u64 conn_id, \ 1000*38c8a9a5SSteve French char *hostname), \ 1001*38c8a9a5SSteve French TP_ARGS(currmid, conn_id, hostname)) 1002*38c8a9a5SSteve French 1003*38c8a9a5SSteve French DEFINE_SMB3_RECONNECT_EVENT(reconnect); 1004*38c8a9a5SSteve French DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect); 1005*38c8a9a5SSteve French 1006*38c8a9a5SSteve French DECLARE_EVENT_CLASS(smb3_credit_class, 1007*38c8a9a5SSteve French TP_PROTO(__u64 currmid, 1008*38c8a9a5SSteve French __u64 conn_id, 1009*38c8a9a5SSteve French char *hostname, 1010*38c8a9a5SSteve French int credits, 1011*38c8a9a5SSteve French int credits_to_add, 1012*38c8a9a5SSteve French int in_flight), 1013*38c8a9a5SSteve French TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight), 1014*38c8a9a5SSteve French TP_STRUCT__entry( 1015*38c8a9a5SSteve French __field(__u64, currmid) 1016*38c8a9a5SSteve French __field(__u64, conn_id) 1017*38c8a9a5SSteve French __string(hostname, hostname) 1018*38c8a9a5SSteve French __field(int, credits) 1019*38c8a9a5SSteve French __field(int, credits_to_add) 1020*38c8a9a5SSteve French __field(int, in_flight) 1021*38c8a9a5SSteve French ), 1022*38c8a9a5SSteve French TP_fast_assign( 1023*38c8a9a5SSteve French __entry->currmid = currmid; 1024*38c8a9a5SSteve French __entry->conn_id = conn_id; 1025*38c8a9a5SSteve French __assign_str(hostname, hostname); 1026*38c8a9a5SSteve French __entry->credits = credits; 1027*38c8a9a5SSteve French __entry->credits_to_add = credits_to_add; 1028*38c8a9a5SSteve French __entry->in_flight = in_flight; 1029*38c8a9a5SSteve French ), 1030*38c8a9a5SSteve French TP_printk("conn_id=0x%llx server=%s current_mid=%llu " 1031*38c8a9a5SSteve French "credits=%d credit_change=%d in_flight=%d", 1032*38c8a9a5SSteve French __entry->conn_id, 1033*38c8a9a5SSteve French __get_str(hostname), 1034*38c8a9a5SSteve French __entry->currmid, 1035*38c8a9a5SSteve French __entry->credits, 1036*38c8a9a5SSteve French __entry->credits_to_add, 1037*38c8a9a5SSteve French __entry->in_flight) 1038*38c8a9a5SSteve French ) 1039*38c8a9a5SSteve French 1040*38c8a9a5SSteve French #define DEFINE_SMB3_CREDIT_EVENT(name) \ 1041*38c8a9a5SSteve French DEFINE_EVENT(smb3_credit_class, smb3_##name, \ 1042*38c8a9a5SSteve French TP_PROTO(__u64 currmid, \ 1043*38c8a9a5SSteve French __u64 conn_id, \ 1044*38c8a9a5SSteve French char *hostname, \ 1045*38c8a9a5SSteve French int credits, \ 1046*38c8a9a5SSteve French int credits_to_add, \ 1047*38c8a9a5SSteve French int in_flight), \ 1048*38c8a9a5SSteve French TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight)) 1049*38c8a9a5SSteve French 1050*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits); 1051*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(reconnect_detected); 1052*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(credit_timeout); 1053*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(insufficient_credits); 1054*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(too_many_credits); 1055*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(add_credits); 1056*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(adj_credits); 1057*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(hdr_credits); 1058*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(nblk_credits); 1059*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(pend_credits); 1060*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(wait_credits); 1061*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(waitff_credits); 1062*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(overflow_credits); 1063*38c8a9a5SSteve French DEFINE_SMB3_CREDIT_EVENT(set_credits); 1064*38c8a9a5SSteve French 1065*38c8a9a5SSteve French #endif /* _CIFS_TRACE_H */ 1066*38c8a9a5SSteve French 1067*38c8a9a5SSteve French #undef TRACE_INCLUDE_PATH 1068*38c8a9a5SSteve French #define TRACE_INCLUDE_PATH . 1069*38c8a9a5SSteve French #define TRACE_INCLUDE_FILE trace 1070*38c8a9a5SSteve French #include <trace/define_trace.h> 1071