Merge branch 'spi-5.1' into spi-next
[sfrench/cifs-2.6.git] / fs / cifs / trace.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  *   Copyright (C) 2018, Microsoft Corporation.
4  *
5  *   Author(s): Steve French <stfrench@microsoft.com>
6  */
7 #undef TRACE_SYSTEM
8 #define TRACE_SYSTEM cifs
9
10 #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
11 #define _CIFS_TRACE_H
12
13 #include <linux/tracepoint.h>
14
15 /* For logging errors in read or write */
16 DECLARE_EVENT_CLASS(smb3_rw_err_class,
17         TP_PROTO(unsigned int xid,
18                 __u64   fid,
19                 __u32   tid,
20                 __u64   sesid,
21                 __u64   offset,
22                 __u32   len,
23                 int     rc),
24         TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
25         TP_STRUCT__entry(
26                 __field(unsigned int, xid)
27                 __field(__u64, fid)
28                 __field(__u32, tid)
29                 __field(__u64, sesid)
30                 __field(__u64, offset)
31                 __field(__u32, len)
32                 __field(int, rc)
33         ),
34         TP_fast_assign(
35                 __entry->xid = xid;
36                 __entry->fid = fid;
37                 __entry->tid = tid;
38                 __entry->sesid = sesid;
39                 __entry->offset = offset;
40                 __entry->len = len;
41                 __entry->rc = rc;
42         ),
43         TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d",
44                 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
45                 __entry->offset, __entry->len, __entry->rc)
46 )
47
48 #define DEFINE_SMB3_RW_ERR_EVENT(name)          \
49 DEFINE_EVENT(smb3_rw_err_class, smb3_##name,    \
50         TP_PROTO(unsigned int xid,              \
51                 __u64   fid,                    \
52                 __u32   tid,                    \
53                 __u64   sesid,                  \
54                 __u64   offset,                 \
55                 __u32   len,                    \
56                 int     rc),                    \
57         TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
58
59 DEFINE_SMB3_RW_ERR_EVENT(write_err);
60 DEFINE_SMB3_RW_ERR_EVENT(read_err);
61
62
63 /* For logging successful read or write */
64 DECLARE_EVENT_CLASS(smb3_rw_done_class,
65         TP_PROTO(unsigned int xid,
66                 __u64   fid,
67                 __u32   tid,
68                 __u64   sesid,
69                 __u64   offset,
70                 __u32   len),
71         TP_ARGS(xid, fid, tid, sesid, offset, len),
72         TP_STRUCT__entry(
73                 __field(unsigned int, xid)
74                 __field(__u64, fid)
75                 __field(__u32, tid)
76                 __field(__u64, sesid)
77                 __field(__u64, offset)
78                 __field(__u32, len)
79         ),
80         TP_fast_assign(
81                 __entry->xid = xid;
82                 __entry->fid = fid;
83                 __entry->tid = tid;
84                 __entry->sesid = sesid;
85                 __entry->offset = offset;
86                 __entry->len = len;
87         ),
88         TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
89                 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
90                 __entry->offset, __entry->len)
91 )
92
93 #define DEFINE_SMB3_RW_DONE_EVENT(name)         \
94 DEFINE_EVENT(smb3_rw_done_class, smb3_##name,   \
95         TP_PROTO(unsigned int xid,              \
96                 __u64   fid,                    \
97                 __u32   tid,                    \
98                 __u64   sesid,                  \
99                 __u64   offset,                 \
100                 __u32   len),                   \
101         TP_ARGS(xid, fid, tid, sesid, offset, len))
102
103 DEFINE_SMB3_RW_DONE_EVENT(write_done);
104 DEFINE_SMB3_RW_DONE_EVENT(read_done);
105
106 /*
107  * For handle based calls other than read and write, and get/set info
108  */
109 DECLARE_EVENT_CLASS(smb3_fd_err_class,
110         TP_PROTO(unsigned int xid,
111                 __u64   fid,
112                 __u32   tid,
113                 __u64   sesid,
114                 int     rc),
115         TP_ARGS(xid, fid, tid, sesid, rc),
116         TP_STRUCT__entry(
117                 __field(unsigned int, xid)
118                 __field(__u64, fid)
119                 __field(__u32, tid)
120                 __field(__u64, sesid)
121                 __field(int, rc)
122         ),
123         TP_fast_assign(
124                 __entry->xid = xid;
125                 __entry->fid = fid;
126                 __entry->tid = tid;
127                 __entry->sesid = sesid;
128                 __entry->rc = rc;
129         ),
130         TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
131                 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
132                 __entry->rc)
133 )
134
135 #define DEFINE_SMB3_FD_ERR_EVENT(name)          \
136 DEFINE_EVENT(smb3_fd_err_class, smb3_##name,    \
137         TP_PROTO(unsigned int xid,              \
138                 __u64   fid,                    \
139                 __u32   tid,                    \
140                 __u64   sesid,                  \
141                 int     rc),                    \
142         TP_ARGS(xid, fid, tid, sesid, rc))
143
144 DEFINE_SMB3_FD_ERR_EVENT(flush_err);
145 DEFINE_SMB3_FD_ERR_EVENT(lock_err);
146 DEFINE_SMB3_FD_ERR_EVENT(close_err);
147
148 /*
149  * For handle based query/set info calls
150  */
151 DECLARE_EVENT_CLASS(smb3_inf_err_class,
152         TP_PROTO(unsigned int xid,
153                 __u64   fid,
154                 __u32   tid,
155                 __u64   sesid,
156                 __u8    infclass,
157                 __u32   type,
158                 int     rc),
159         TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
160         TP_STRUCT__entry(
161                 __field(unsigned int, xid)
162                 __field(__u64, fid)
163                 __field(__u32, tid)
164                 __field(__u64, sesid)
165                 __field(__u8, infclass)
166                 __field(__u32, type)
167                 __field(int, rc)
168         ),
169         TP_fast_assign(
170                 __entry->xid = xid;
171                 __entry->fid = fid;
172                 __entry->tid = tid;
173                 __entry->sesid = sesid;
174                 __entry->infclass = infclass;
175                 __entry->type = type;
176                 __entry->rc = rc;
177         ),
178         TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
179                 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
180                 __entry->infclass, __entry->type, __entry->rc)
181 )
182
183 #define DEFINE_SMB3_INF_ERR_EVENT(name)          \
184 DEFINE_EVENT(smb3_inf_err_class, smb3_##name,    \
185         TP_PROTO(unsigned int xid,              \
186                 __u64   fid,                    \
187                 __u32   tid,                    \
188                 __u64   sesid,                  \
189                 __u8    infclass,               \
190                 __u32   type,                   \
191                 int     rc),                    \
192         TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
193
194 DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
195 DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
196 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
197
198 /*
199  * For logging SMB3 Status code and Command for responses which return errors
200  */
201 DECLARE_EVENT_CLASS(smb3_cmd_err_class,
202         TP_PROTO(__u32  tid,
203                 __u64   sesid,
204                 __u16   cmd,
205                 __u64   mid,
206                 __u32   status,
207                 int     rc),
208         TP_ARGS(tid, sesid, cmd, mid, status, rc),
209         TP_STRUCT__entry(
210                 __field(__u32, tid)
211                 __field(__u64, sesid)
212                 __field(__u16, cmd)
213                 __field(__u64, mid)
214                 __field(__u32, status)
215                 __field(int, rc)
216         ),
217         TP_fast_assign(
218                 __entry->tid = tid;
219                 __entry->sesid = sesid;
220                 __entry->cmd = cmd;
221                 __entry->mid = mid;
222                 __entry->status = status;
223                 __entry->rc = rc;
224         ),
225         TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
226                 __entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
227                 __entry->status, __entry->rc)
228 )
229
230 #define DEFINE_SMB3_CMD_ERR_EVENT(name)          \
231 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name,    \
232         TP_PROTO(__u32  tid,                    \
233                 __u64   sesid,                  \
234                 __u16   cmd,                    \
235                 __u64   mid,                    \
236                 __u32   status,                 \
237                 int     rc),                    \
238         TP_ARGS(tid, sesid, cmd, mid, status, rc))
239
240 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
241
242 DECLARE_EVENT_CLASS(smb3_cmd_done_class,
243         TP_PROTO(__u32  tid,
244                 __u64   sesid,
245                 __u16   cmd,
246                 __u64   mid),
247         TP_ARGS(tid, sesid, cmd, mid),
248         TP_STRUCT__entry(
249                 __field(__u32, tid)
250                 __field(__u64, sesid)
251                 __field(__u16, cmd)
252                 __field(__u64, mid)
253         ),
254         TP_fast_assign(
255                 __entry->tid = tid;
256                 __entry->sesid = sesid;
257                 __entry->cmd = cmd;
258                 __entry->mid = mid;
259         ),
260         TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
261                 __entry->sesid, __entry->tid,
262                 __entry->cmd, __entry->mid)
263 )
264
265 #define DEFINE_SMB3_CMD_DONE_EVENT(name)          \
266 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name,    \
267         TP_PROTO(__u32  tid,                    \
268                 __u64   sesid,                  \
269                 __u16   cmd,                    \
270                 __u64   mid),                   \
271         TP_ARGS(tid, sesid, cmd, mid))
272
273 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
274 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
275
276 DECLARE_EVENT_CLASS(smb3_mid_class,
277         TP_PROTO(__u16  cmd,
278                 __u64   mid,
279                 __u32   pid,
280                 unsigned long when_sent,
281                 unsigned long when_received),
282         TP_ARGS(cmd, mid, pid, when_sent, when_received),
283         TP_STRUCT__entry(
284                 __field(__u16, cmd)
285                 __field(__u64, mid)
286                 __field(__u32, pid)
287                 __field(unsigned long, when_sent)
288                 __field(unsigned long, when_received)
289         ),
290         TP_fast_assign(
291                 __entry->cmd = cmd;
292                 __entry->mid = mid;
293                 __entry->pid = pid;
294                 __entry->when_sent = when_sent;
295                 __entry->when_received = when_received;
296         ),
297         TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
298                 __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
299                 __entry->when_received)
300 )
301
302 #define DEFINE_SMB3_MID_EVENT(name)          \
303 DEFINE_EVENT(smb3_mid_class, smb3_##name,    \
304         TP_PROTO(__u16  cmd,                    \
305                 __u64   mid,                    \
306                 __u32   pid,                    \
307                 unsigned long when_sent,        \
308                 unsigned long when_received),   \
309         TP_ARGS(cmd, mid, pid, when_sent, when_received))
310
311 DEFINE_SMB3_MID_EVENT(slow_rsp);
312
313 DECLARE_EVENT_CLASS(smb3_exit_err_class,
314         TP_PROTO(unsigned int xid,
315                 const char *func_name,
316                 int     rc),
317         TP_ARGS(xid, func_name, rc),
318         TP_STRUCT__entry(
319                 __field(unsigned int, xid)
320                 __field(const char *, func_name)
321                 __field(int, rc)
322         ),
323         TP_fast_assign(
324                 __entry->xid = xid;
325                 __entry->func_name = func_name;
326                 __entry->rc = rc;
327         ),
328         TP_printk("\t%s: xid=%u rc=%d",
329                 __entry->func_name, __entry->xid, __entry->rc)
330 )
331
332 #define DEFINE_SMB3_EXIT_ERR_EVENT(name)          \
333 DEFINE_EVENT(smb3_exit_err_class, smb3_##name,    \
334         TP_PROTO(unsigned int xid,              \
335                 const char *func_name,          \
336                 int     rc),                    \
337         TP_ARGS(xid, func_name, rc))
338
339 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
340
341 DECLARE_EVENT_CLASS(smb3_enter_exit_class,
342         TP_PROTO(unsigned int xid,
343                 const char *func_name),
344         TP_ARGS(xid, func_name),
345         TP_STRUCT__entry(
346                 __field(unsigned int, xid)
347                 __field(const char *, func_name)
348         ),
349         TP_fast_assign(
350                 __entry->xid = xid;
351                 __entry->func_name = func_name;
352         ),
353         TP_printk("\t%s: xid=%u",
354                 __entry->func_name, __entry->xid)
355 )
356
357 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name)        \
358 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name,  \
359         TP_PROTO(unsigned int xid,              \
360                 const char *func_name),         \
361         TP_ARGS(xid, func_name))
362
363 DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
364 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
365
366 /*
367  * For SMB2/SMB3 tree connect
368  */
369
370 DECLARE_EVENT_CLASS(smb3_tcon_class,
371         TP_PROTO(unsigned int xid,
372                 __u32   tid,
373                 __u64   sesid,
374                 const char *unc_name,
375                 int     rc),
376         TP_ARGS(xid, tid, sesid, unc_name, rc),
377         TP_STRUCT__entry(
378                 __field(unsigned int, xid)
379                 __field(__u32, tid)
380                 __field(__u64, sesid)
381                 __field(const char *,  unc_name)
382                 __field(int, rc)
383         ),
384         TP_fast_assign(
385                 __entry->xid = xid;
386                 __entry->tid = tid;
387                 __entry->sesid = sesid;
388                 __entry->unc_name = unc_name;
389                 __entry->rc = rc;
390         ),
391         TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
392                 __entry->xid, __entry->sesid, __entry->tid,
393                 __entry->unc_name, __entry->rc)
394 )
395
396 #define DEFINE_SMB3_TCON_EVENT(name)          \
397 DEFINE_EVENT(smb3_tcon_class, smb3_##name,    \
398         TP_PROTO(unsigned int xid,              \
399                 __u32   tid,                    \
400                 __u64   sesid,                  \
401                 const char *unc_name,           \
402                 int     rc),                    \
403         TP_ARGS(xid, tid, sesid, unc_name, rc))
404
405 DEFINE_SMB3_TCON_EVENT(tcon);
406
407
408 /*
409  * For smb2/smb3 open call
410  */
411 DECLARE_EVENT_CLASS(smb3_open_err_class,
412         TP_PROTO(unsigned int xid,
413                 __u32   tid,
414                 __u64   sesid,
415                 int     create_options,
416                 int     desired_access,
417                 int     rc),
418         TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
419         TP_STRUCT__entry(
420                 __field(unsigned int, xid)
421                 __field(__u32, tid)
422                 __field(__u64, sesid)
423                 __field(int,   create_options)
424                 __field(int, desired_access)
425                 __field(int, rc)
426         ),
427         TP_fast_assign(
428                 __entry->xid = xid;
429                 __entry->tid = tid;
430                 __entry->sesid = sesid;
431                 __entry->create_options = create_options;
432                 __entry->desired_access = desired_access;
433                 __entry->rc = rc;
434         ),
435         TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
436                 __entry->xid, __entry->sesid, __entry->tid,
437                 __entry->create_options, __entry->desired_access, __entry->rc)
438 )
439
440 #define DEFINE_SMB3_OPEN_ERR_EVENT(name)          \
441 DEFINE_EVENT(smb3_open_err_class, smb3_##name,    \
442         TP_PROTO(unsigned int xid,              \
443                 __u32   tid,                    \
444                 __u64   sesid,                  \
445                 int     create_options,         \
446                 int     desired_access,         \
447                 int     rc),                    \
448         TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
449
450 DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
451 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
452
453 DECLARE_EVENT_CLASS(smb3_open_done_class,
454         TP_PROTO(unsigned int xid,
455                 __u64   fid,
456                 __u32   tid,
457                 __u64   sesid,
458                 int     create_options,
459                 int     desired_access),
460         TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
461         TP_STRUCT__entry(
462                 __field(unsigned int, xid)
463                 __field(__u64, fid)
464                 __field(__u32, tid)
465                 __field(__u64, sesid)
466                 __field(int, create_options)
467                 __field(int, desired_access)
468         ),
469         TP_fast_assign(
470                 __entry->xid = xid;
471                 __entry->fid = fid;
472                 __entry->tid = tid;
473                 __entry->sesid = sesid;
474                 __entry->create_options = create_options;
475                 __entry->desired_access = desired_access;
476         ),
477         TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
478                 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
479                 __entry->create_options, __entry->desired_access)
480 )
481
482 #define DEFINE_SMB3_OPEN_DONE_EVENT(name)        \
483 DEFINE_EVENT(smb3_open_done_class, smb3_##name,  \
484         TP_PROTO(unsigned int xid,              \
485                 __u64   fid,                    \
486                 __u32   tid,                    \
487                 __u64   sesid,                  \
488                 int     create_options,         \
489                 int     desired_access),        \
490         TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
491
492 DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
493 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
494
495
496 DECLARE_EVENT_CLASS(smb3_lease_done_class,
497         TP_PROTO(__u32  lease_state,
498                 __u32   tid,
499                 __u64   sesid,
500                 __u64   lease_key_low,
501                 __u64   lease_key_high),
502         TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
503         TP_STRUCT__entry(
504                 __field(__u32, lease_state)
505                 __field(__u32, tid)
506                 __field(__u64, sesid)
507                 __field(__u64, lease_key_low)
508                 __field(__u64, lease_key_high)
509         ),
510         TP_fast_assign(
511                 __entry->lease_state = lease_state;
512                 __entry->tid = tid;
513                 __entry->sesid = sesid;
514                 __entry->lease_key_low = lease_key_low;
515                 __entry->lease_key_high = lease_key_high;
516         ),
517         TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
518                 __entry->sesid, __entry->tid, __entry->lease_key_high,
519                 __entry->lease_key_low, __entry->lease_state)
520 )
521
522 #define DEFINE_SMB3_LEASE_DONE_EVENT(name)        \
523 DEFINE_EVENT(smb3_lease_done_class, smb3_##name,  \
524         TP_PROTO(__u32  lease_state,            \
525                 __u32   tid,                    \
526                 __u64   sesid,                  \
527                 __u64   lease_key_low,          \
528                 __u64   lease_key_high),        \
529         TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
530
531 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
532
533 DECLARE_EVENT_CLASS(smb3_lease_err_class,
534         TP_PROTO(__u32  lease_state,
535                 __u32   tid,
536                 __u64   sesid,
537                 __u64   lease_key_low,
538                 __u64   lease_key_high,
539                 int     rc),
540         TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
541         TP_STRUCT__entry(
542                 __field(__u32, lease_state)
543                 __field(__u32, tid)
544                 __field(__u64, sesid)
545                 __field(__u64, lease_key_low)
546                 __field(__u64, lease_key_high)
547                 __field(int, rc)
548         ),
549         TP_fast_assign(
550                 __entry->lease_state = lease_state;
551                 __entry->tid = tid;
552                 __entry->sesid = sesid;
553                 __entry->lease_key_low = lease_key_low;
554                 __entry->lease_key_high = lease_key_high;
555                 __entry->rc = rc;
556         ),
557         TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
558                 __entry->sesid, __entry->tid, __entry->lease_key_high,
559                 __entry->lease_key_low, __entry->lease_state, __entry->rc)
560 )
561
562 #define DEFINE_SMB3_LEASE_ERR_EVENT(name)        \
563 DEFINE_EVENT(smb3_lease_err_class, smb3_##name,  \
564         TP_PROTO(__u32  lease_state,            \
565                 __u32   tid,                    \
566                 __u64   sesid,                  \
567                 __u64   lease_key_low,          \
568                 __u64   lease_key_high,         \
569                 int     rc),                    \
570         TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
571
572 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
573
574 DECLARE_EVENT_CLASS(smb3_reconnect_class,
575         TP_PROTO(__u64  currmid,
576                 char *hostname),
577         TP_ARGS(currmid, hostname),
578         TP_STRUCT__entry(
579                 __field(__u64, currmid)
580                 __field(char *, hostname)
581         ),
582         TP_fast_assign(
583                 __entry->currmid = currmid;
584                 __entry->hostname = hostname;
585         ),
586         TP_printk("server=%s current_mid=0x%llx",
587                 __entry->hostname,
588                 __entry->currmid)
589 )
590
591 #define DEFINE_SMB3_RECONNECT_EVENT(name)        \
592 DEFINE_EVENT(smb3_reconnect_class, smb3_##name,  \
593         TP_PROTO(__u64  currmid,                \
594                 char *hostname),                \
595         TP_ARGS(currmid, hostname))
596
597 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
598 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
599
600 DECLARE_EVENT_CLASS(smb3_credit_class,
601         TP_PROTO(__u64  currmid,
602                 char *hostname,
603                 int credits),
604         TP_ARGS(currmid, hostname, credits),
605         TP_STRUCT__entry(
606                 __field(__u64, currmid)
607                 __field(char *, hostname)
608                 __field(int, credits)
609         ),
610         TP_fast_assign(
611                 __entry->currmid = currmid;
612                 __entry->hostname = hostname;
613                 __entry->credits = credits;
614         ),
615         TP_printk("server=%s current_mid=0x%llx credits=%d",
616                 __entry->hostname,
617                 __entry->currmid,
618                 __entry->credits)
619 )
620
621 #define DEFINE_SMB3_CREDIT_EVENT(name)        \
622 DEFINE_EVENT(smb3_credit_class, smb3_##name,  \
623         TP_PROTO(__u64  currmid,                \
624                 char *hostname,                 \
625                 int  credits),                  \
626         TP_ARGS(currmid, hostname, credits))
627
628 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
629
630 #endif /* _CIFS_TRACE_H */
631
632 #undef TRACE_INCLUDE_PATH
633 #define TRACE_INCLUDE_PATH .
634 #define TRACE_INCLUDE_FILE trace
635 #include <trace/define_trace.h>