1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2018, Microsoft Corporation.
5 * Author(s): Steve French <stfrench@microsoft.com>
8 #define TRACE_SYSTEM cifs
10 #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
13 #include <linux/tracepoint.h>
15 /* For logging errors in read or write */
16 DECLARE_EVENT_CLASS(smb3_rw_err_class
,
17 TP_PROTO(unsigned int xid
,
24 TP_ARGS(xid
, fid
, tid
, sesid
, offset
, len
, rc
),
26 __field(unsigned int, xid
)
30 __field(__u64
, offset
)
38 __entry
->sesid
= sesid
;
39 __entry
->offset
= offset
;
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
)
48 #define DEFINE_SMB3_RW_ERR_EVENT(name) \
49 DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \
50 TP_PROTO(unsigned int xid, \
57 TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
59 DEFINE_SMB3_RW_ERR_EVENT(write_err
);
60 DEFINE_SMB3_RW_ERR_EVENT(read_err
);
61 DEFINE_SMB3_RW_ERR_EVENT(query_dir_err
);
62 DEFINE_SMB3_RW_ERR_EVENT(zero_err
);
63 DEFINE_SMB3_RW_ERR_EVENT(falloc_err
);
66 /* For logging successful read or write */
67 DECLARE_EVENT_CLASS(smb3_rw_done_class
,
68 TP_PROTO(unsigned int xid
,
74 TP_ARGS(xid
, fid
, tid
, sesid
, offset
, len
),
76 __field(unsigned int, xid
)
80 __field(__u64
, offset
)
87 __entry
->sesid
= sesid
;
88 __entry
->offset
= offset
;
91 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
92 __entry
->xid
, __entry
->sesid
, __entry
->tid
, __entry
->fid
,
93 __entry
->offset
, __entry
->len
)
96 #define DEFINE_SMB3_RW_DONE_EVENT(name) \
97 DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \
98 TP_PROTO(unsigned int xid, \
104 TP_ARGS(xid, fid, tid, sesid, offset, len))
106 DEFINE_SMB3_RW_DONE_EVENT(write_enter
);
107 DEFINE_SMB3_RW_DONE_EVENT(read_enter
);
108 DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter
);
109 DEFINE_SMB3_RW_DONE_EVENT(zero_enter
);
110 DEFINE_SMB3_RW_DONE_EVENT(falloc_enter
);
111 DEFINE_SMB3_RW_DONE_EVENT(write_done
);
112 DEFINE_SMB3_RW_DONE_EVENT(read_done
);
113 DEFINE_SMB3_RW_DONE_EVENT(query_dir_done
);
114 DEFINE_SMB3_RW_DONE_EVENT(zero_done
);
115 DEFINE_SMB3_RW_DONE_EVENT(falloc_done
);
118 * For handle based calls other than read and write, and get/set info
120 DECLARE_EVENT_CLASS(smb3_fd_class
,
121 TP_PROTO(unsigned int xid
,
125 TP_ARGS(xid
, fid
, tid
, sesid
),
127 __field(unsigned int, xid
)
130 __field(__u64
, sesid
)
136 __entry
->sesid
= sesid
;
138 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
139 __entry
->xid
, __entry
->sesid
, __entry
->tid
, __entry
->fid
)
142 #define DEFINE_SMB3_FD_EVENT(name) \
143 DEFINE_EVENT(smb3_fd_class, smb3_##name, \
144 TP_PROTO(unsigned int xid, \
148 TP_ARGS(xid, fid, tid, sesid))
150 DEFINE_SMB3_FD_EVENT(flush_enter
);
151 DEFINE_SMB3_FD_EVENT(flush_done
);
152 DEFINE_SMB3_FD_EVENT(close_enter
);
153 DEFINE_SMB3_FD_EVENT(close_done
);
155 DECLARE_EVENT_CLASS(smb3_fd_err_class
,
156 TP_PROTO(unsigned int xid
,
161 TP_ARGS(xid
, fid
, tid
, sesid
, rc
),
163 __field(unsigned int, xid
)
166 __field(__u64
, sesid
)
173 __entry
->sesid
= sesid
;
176 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
177 __entry
->xid
, __entry
->sesid
, __entry
->tid
, __entry
->fid
,
181 #define DEFINE_SMB3_FD_ERR_EVENT(name) \
182 DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \
183 TP_PROTO(unsigned int xid, \
188 TP_ARGS(xid, fid, tid, sesid, rc))
190 DEFINE_SMB3_FD_ERR_EVENT(flush_err
);
191 DEFINE_SMB3_FD_ERR_EVENT(lock_err
);
192 DEFINE_SMB3_FD_ERR_EVENT(close_err
);
195 * For handle based query/set info calls
197 DECLARE_EVENT_CLASS(smb3_inf_enter_class
,
198 TP_PROTO(unsigned int xid
,
204 TP_ARGS(xid
, fid
, tid
, sesid
, infclass
, type
),
206 __field(unsigned int, xid
)
209 __field(__u64
, sesid
)
210 __field(__u8
, infclass
)
217 __entry
->sesid
= sesid
;
218 __entry
->infclass
= infclass
;
219 __entry
->type
= type
;
221 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x",
222 __entry
->xid
, __entry
->sesid
, __entry
->tid
, __entry
->fid
,
223 __entry
->infclass
, __entry
->type
)
226 #define DEFINE_SMB3_INF_ENTER_EVENT(name) \
227 DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \
228 TP_PROTO(unsigned int xid, \
234 TP_ARGS(xid, fid, tid, sesid, infclass, type))
236 DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter
);
237 DEFINE_SMB3_INF_ENTER_EVENT(query_info_done
);
238 DEFINE_SMB3_INF_ENTER_EVENT(notify_enter
);
239 DEFINE_SMB3_INF_ENTER_EVENT(notify_done
);
241 DECLARE_EVENT_CLASS(smb3_inf_err_class
,
242 TP_PROTO(unsigned int xid
,
249 TP_ARGS(xid
, fid
, tid
, sesid
, infclass
, type
, rc
),
251 __field(unsigned int, xid
)
254 __field(__u64
, sesid
)
255 __field(__u8
, infclass
)
263 __entry
->sesid
= sesid
;
264 __entry
->infclass
= infclass
;
265 __entry
->type
= type
;
268 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
269 __entry
->xid
, __entry
->sesid
, __entry
->tid
, __entry
->fid
,
270 __entry
->infclass
, __entry
->type
, __entry
->rc
)
273 #define DEFINE_SMB3_INF_ERR_EVENT(name) \
274 DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \
275 TP_PROTO(unsigned int xid, \
282 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
284 DEFINE_SMB3_INF_ERR_EVENT(query_info_err
);
285 DEFINE_SMB3_INF_ERR_EVENT(set_info_err
);
286 DEFINE_SMB3_INF_ERR_EVENT(notify_err
);
287 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err
);
289 DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class
,
290 TP_PROTO(unsigned int xid
,
293 const char *full_path
),
294 TP_ARGS(xid
, tid
, sesid
, full_path
),
296 __field(unsigned int, xid
)
298 __field(__u64
, sesid
)
299 __string(path
, full_path
)
304 __entry
->sesid
= sesid
;
305 __assign_str(path
, full_path
);
307 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
308 __entry
->xid
, __entry
->sesid
, __entry
->tid
,
312 #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \
313 DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \
314 TP_PROTO(unsigned int xid, \
317 const char *full_path), \
318 TP_ARGS(xid, tid, sesid, full_path))
320 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter
);
321 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter
);
322 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter
);
323 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter
);
324 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter
);
325 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter
);
326 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter
);
327 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter
);
328 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter
);
331 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class
,
332 TP_PROTO(unsigned int xid
,
335 TP_ARGS(xid
, tid
, sesid
),
337 __field(unsigned int, xid
)
339 __field(__u64
, sesid
)
344 __entry
->sesid
= sesid
;
346 TP_printk("xid=%u sid=0x%llx tid=0x%x",
347 __entry
->xid
, __entry
->sesid
, __entry
->tid
)
350 #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
351 DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \
352 TP_PROTO(unsigned int xid, \
355 TP_ARGS(xid, tid, sesid))
357 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done
);
358 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done
);
359 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done
);
360 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done
);
361 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done
);
362 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done
);
363 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done
);
364 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done
);
365 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done
);
368 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class
,
369 TP_PROTO(unsigned int xid
,
373 TP_ARGS(xid
, tid
, sesid
, rc
),
375 __field(unsigned int, xid
)
377 __field(__u64
, sesid
)
383 __entry
->sesid
= sesid
;
386 TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
387 __entry
->xid
, __entry
->sesid
, __entry
->tid
,
391 #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
392 DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \
393 TP_PROTO(unsigned int xid, \
397 TP_ARGS(xid, tid, sesid, rc))
399 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err
);
400 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err
);
401 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err
);
402 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err
);
403 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err
);
404 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err
);
405 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err
);
406 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err
);
407 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err
);
410 * For logging SMB3 Status code and Command for responses which return errors
412 DECLARE_EVENT_CLASS(smb3_cmd_err_class
,
419 TP_ARGS(tid
, sesid
, cmd
, mid
, status
, rc
),
422 __field(__u64
, sesid
)
425 __field(__u32
, status
)
430 __entry
->sesid
= sesid
;
433 __entry
->status
= status
;
436 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
437 __entry
->sesid
, __entry
->tid
, __entry
->cmd
, __entry
->mid
,
438 __entry
->status
, __entry
->rc
)
441 #define DEFINE_SMB3_CMD_ERR_EVENT(name) \
442 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
443 TP_PROTO(__u32 tid, \
449 TP_ARGS(tid, sesid, cmd, mid, status, rc))
451 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err
);
453 DECLARE_EVENT_CLASS(smb3_cmd_done_class
,
458 TP_ARGS(tid
, sesid
, cmd
, mid
),
461 __field(__u64
, sesid
)
467 __entry
->sesid
= sesid
;
471 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
472 __entry
->sesid
, __entry
->tid
,
473 __entry
->cmd
, __entry
->mid
)
476 #define DEFINE_SMB3_CMD_DONE_EVENT(name) \
477 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
478 TP_PROTO(__u32 tid, \
482 TP_ARGS(tid, sesid, cmd, mid))
484 DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter
);
485 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done
);
486 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired
);
488 DECLARE_EVENT_CLASS(smb3_mid_class
,
492 unsigned long when_sent
,
493 unsigned long when_received
),
494 TP_ARGS(cmd
, mid
, pid
, when_sent
, when_received
),
499 __field(unsigned long, when_sent
)
500 __field(unsigned long, when_received
)
506 __entry
->when_sent
= when_sent
;
507 __entry
->when_received
= when_received
;
509 TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
510 __entry
->cmd
, __entry
->mid
, __entry
->pid
, __entry
->when_sent
,
511 __entry
->when_received
)
514 #define DEFINE_SMB3_MID_EVENT(name) \
515 DEFINE_EVENT(smb3_mid_class, smb3_##name, \
516 TP_PROTO(__u16 cmd, \
519 unsigned long when_sent, \
520 unsigned long when_received), \
521 TP_ARGS(cmd, mid, pid, when_sent, when_received))
523 DEFINE_SMB3_MID_EVENT(slow_rsp
);
525 DECLARE_EVENT_CLASS(smb3_exit_err_class
,
526 TP_PROTO(unsigned int xid
,
527 const char *func_name
,
529 TP_ARGS(xid
, func_name
, rc
),
531 __field(unsigned int, xid
)
532 __field(const char *, func_name
)
537 __entry
->func_name
= func_name
;
540 TP_printk("\t%s: xid=%u rc=%d",
541 __entry
->func_name
, __entry
->xid
, __entry
->rc
)
544 #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
545 DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \
546 TP_PROTO(unsigned int xid, \
547 const char *func_name, \
549 TP_ARGS(xid, func_name, rc))
551 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err
);
554 DECLARE_EVENT_CLASS(smb3_sync_err_class
,
555 TP_PROTO(unsigned long ino
,
559 __field(unsigned long, ino
)
566 TP_printk("\tino=%lu rc=%d",
567 __entry
->ino
, __entry
->rc
)
570 #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \
571 DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \
572 TP_PROTO(unsigned long ino, \
576 DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err
);
577 DEFINE_SMB3_SYNC_ERR_EVENT(flush_err
);
580 DECLARE_EVENT_CLASS(smb3_enter_exit_class
,
581 TP_PROTO(unsigned int xid
,
582 const char *func_name
),
583 TP_ARGS(xid
, func_name
),
585 __field(unsigned int, xid
)
586 __field(const char *, func_name
)
590 __entry
->func_name
= func_name
;
592 TP_printk("\t%s: xid=%u",
593 __entry
->func_name
, __entry
->xid
)
596 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
597 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \
598 TP_PROTO(unsigned int xid, \
599 const char *func_name), \
600 TP_ARGS(xid, func_name))
602 DEFINE_SMB3_ENTER_EXIT_EVENT(enter
);
603 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done
);
606 * For SMB2/SMB3 tree connect
609 DECLARE_EVENT_CLASS(smb3_tcon_class
,
610 TP_PROTO(unsigned int xid
,
613 const char *unc_name
,
615 TP_ARGS(xid
, tid
, sesid
, unc_name
, rc
),
617 __field(unsigned int, xid
)
619 __field(__u64
, sesid
)
620 __string(name
, unc_name
)
626 __entry
->sesid
= sesid
;
627 __assign_str(name
, unc_name
);
630 TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
631 __entry
->xid
, __entry
->sesid
, __entry
->tid
,
632 __get_str(name
), __entry
->rc
)
635 #define DEFINE_SMB3_TCON_EVENT(name) \
636 DEFINE_EVENT(smb3_tcon_class, smb3_##name, \
637 TP_PROTO(unsigned int xid, \
640 const char *unc_name, \
642 TP_ARGS(xid, tid, sesid, unc_name, rc))
644 DEFINE_SMB3_TCON_EVENT(tcon
);
648 * For smb2/smb3 open (including create and mkdir) calls
651 DECLARE_EVENT_CLASS(smb3_open_enter_class
,
652 TP_PROTO(unsigned int xid
,
657 TP_ARGS(xid
, tid
, sesid
, create_options
, desired_access
),
659 __field(unsigned int, xid
)
661 __field(__u64
, sesid
)
662 __field(int, create_options
)
663 __field(int, desired_access
)
668 __entry
->sesid
= sesid
;
669 __entry
->create_options
= create_options
;
670 __entry
->desired_access
= desired_access
;
672 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x",
673 __entry
->xid
, __entry
->sesid
, __entry
->tid
,
674 __entry
->create_options
, __entry
->desired_access
)
677 #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
678 DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
679 TP_PROTO(unsigned int xid, \
682 int create_options, \
683 int desired_access), \
684 TP_ARGS(xid, tid, sesid, create_options, desired_access))
686 DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter
);
687 DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter
);
689 DECLARE_EVENT_CLASS(smb3_open_err_class
,
690 TP_PROTO(unsigned int xid
,
696 TP_ARGS(xid
, tid
, sesid
, create_options
, desired_access
, rc
),
698 __field(unsigned int, xid
)
700 __field(__u64
, sesid
)
701 __field(int, create_options
)
702 __field(int, desired_access
)
708 __entry
->sesid
= sesid
;
709 __entry
->create_options
= create_options
;
710 __entry
->desired_access
= desired_access
;
713 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
714 __entry
->xid
, __entry
->sesid
, __entry
->tid
,
715 __entry
->create_options
, __entry
->desired_access
, __entry
->rc
)
718 #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
719 DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
720 TP_PROTO(unsigned int xid, \
723 int create_options, \
724 int desired_access, \
726 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
728 DEFINE_SMB3_OPEN_ERR_EVENT(open_err
);
729 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err
);
731 DECLARE_EVENT_CLASS(smb3_open_done_class
,
732 TP_PROTO(unsigned int xid
,
738 TP_ARGS(xid
, fid
, tid
, sesid
, create_options
, desired_access
),
740 __field(unsigned int, xid
)
743 __field(__u64
, sesid
)
744 __field(int, create_options
)
745 __field(int, desired_access
)
751 __entry
->sesid
= sesid
;
752 __entry
->create_options
= create_options
;
753 __entry
->desired_access
= desired_access
;
755 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
756 __entry
->xid
, __entry
->sesid
, __entry
->tid
, __entry
->fid
,
757 __entry
->create_options
, __entry
->desired_access
)
760 #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
761 DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
762 TP_PROTO(unsigned int xid, \
766 int create_options, \
767 int desired_access), \
768 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
770 DEFINE_SMB3_OPEN_DONE_EVENT(open_done
);
771 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done
);
774 DECLARE_EVENT_CLASS(smb3_lease_done_class
,
775 TP_PROTO(__u32 lease_state
,
779 __u64 lease_key_high
),
780 TP_ARGS(lease_state
, tid
, sesid
, lease_key_low
, lease_key_high
),
782 __field(__u32
, lease_state
)
784 __field(__u64
, sesid
)
785 __field(__u64
, lease_key_low
)
786 __field(__u64
, lease_key_high
)
789 __entry
->lease_state
= lease_state
;
791 __entry
->sesid
= sesid
;
792 __entry
->lease_key_low
= lease_key_low
;
793 __entry
->lease_key_high
= lease_key_high
;
795 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
796 __entry
->sesid
, __entry
->tid
, __entry
->lease_key_high
,
797 __entry
->lease_key_low
, __entry
->lease_state
)
800 #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
801 DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
802 TP_PROTO(__u32 lease_state, \
805 __u64 lease_key_low, \
806 __u64 lease_key_high), \
807 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
809 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done
);
811 DECLARE_EVENT_CLASS(smb3_lease_err_class
,
812 TP_PROTO(__u32 lease_state
,
816 __u64 lease_key_high
,
818 TP_ARGS(lease_state
, tid
, sesid
, lease_key_low
, lease_key_high
, rc
),
820 __field(__u32
, lease_state
)
822 __field(__u64
, sesid
)
823 __field(__u64
, lease_key_low
)
824 __field(__u64
, lease_key_high
)
828 __entry
->lease_state
= lease_state
;
830 __entry
->sesid
= sesid
;
831 __entry
->lease_key_low
= lease_key_low
;
832 __entry
->lease_key_high
= lease_key_high
;
835 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
836 __entry
->sesid
, __entry
->tid
, __entry
->lease_key_high
,
837 __entry
->lease_key_low
, __entry
->lease_state
, __entry
->rc
)
840 #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
841 DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
842 TP_PROTO(__u32 lease_state, \
845 __u64 lease_key_low, \
846 __u64 lease_key_high, \
848 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
850 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err
);
852 DECLARE_EVENT_CLASS(smb3_reconnect_class
,
853 TP_PROTO(__u64 currmid
,
855 TP_ARGS(currmid
, hostname
),
857 __field(__u64
, currmid
)
858 __field(char *, hostname
)
861 __entry
->currmid
= currmid
;
862 __entry
->hostname
= hostname
;
864 TP_printk("server=%s current_mid=0x%llx",
869 #define DEFINE_SMB3_RECONNECT_EVENT(name) \
870 DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
871 TP_PROTO(__u64 currmid, \
873 TP_ARGS(currmid, hostname))
875 DEFINE_SMB3_RECONNECT_EVENT(reconnect
);
876 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect
);
878 DECLARE_EVENT_CLASS(smb3_credit_class
,
879 TP_PROTO(__u64 currmid
,
883 TP_ARGS(currmid
, hostname
, credits
, credits_to_add
),
885 __field(__u64
, currmid
)
886 __field(char *, hostname
)
887 __field(int, credits
)
888 __field(int, credits_to_add
)
891 __entry
->currmid
= currmid
;
892 __entry
->hostname
= hostname
;
893 __entry
->credits
= credits
;
894 __entry
->credits_to_add
= credits_to_add
;
896 TP_printk("server=%s current_mid=0x%llx credits=%d credits_to_add=%d",
900 __entry
->credits_to_add
)
903 #define DEFINE_SMB3_CREDIT_EVENT(name) \
904 DEFINE_EVENT(smb3_credit_class, smb3_##name, \
905 TP_PROTO(__u64 currmid, \
908 int credits_to_add), \
909 TP_ARGS(currmid, hostname, credits, credits_to_add))
911 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits
);
912 DEFINE_SMB3_CREDIT_EVENT(reconnect_detected
);
913 DEFINE_SMB3_CREDIT_EVENT(credit_timeout
);
914 DEFINE_SMB3_CREDIT_EVENT(insufficient_credits
);
915 DEFINE_SMB3_CREDIT_EVENT(too_many_credits
);
916 DEFINE_SMB3_CREDIT_EVENT(add_credits
);
917 DEFINE_SMB3_CREDIT_EVENT(set_credits
);
919 #endif /* _CIFS_TRACE_H */
921 #undef TRACE_INCLUDE_PATH
922 #define TRACE_INCLUDE_PATH .
923 #define TRACE_INCLUDE_FILE trace
924 #include <trace/define_trace.h>