1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2018, Microsoft Corporation.
8 #define TRACE_SYSTEM cifs
10 #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
13 #include <linux/tracepoint.h>
14 #include <linux/net.h>
15 #include <linux/inet.h>
18 * Please use this 3-part article as a reference for writing new tracepoints:
19 * https://lwn.net/Articles/379903/
22 /* For logging errors in read or write */
23 DECLARE_EVENT_CLASS(smb3_rw_err_class,
24 TP_PROTO(unsigned int xid,
31 TP_ARGS(xid, fid, tid, sesid, offset, len, rc),
33 __field(unsigned int, xid)
37 __field(__u64, offset)
45 __entry->sesid = sesid;
46 __entry->offset = offset;
50 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d",
51 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
52 __entry->offset, __entry->len, __entry->rc)
55 #define DEFINE_SMB3_RW_ERR_EVENT(name) \
56 DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \
57 TP_PROTO(unsigned int xid, \
64 TP_ARGS(xid, fid, tid, sesid, offset, len, rc))
66 DEFINE_SMB3_RW_ERR_EVENT(write_err);
67 DEFINE_SMB3_RW_ERR_EVENT(read_err);
68 DEFINE_SMB3_RW_ERR_EVENT(query_dir_err);
69 DEFINE_SMB3_RW_ERR_EVENT(zero_err);
70 DEFINE_SMB3_RW_ERR_EVENT(falloc_err);
73 /* For logging successful read or write */
74 DECLARE_EVENT_CLASS(smb3_rw_done_class,
75 TP_PROTO(unsigned int xid,
81 TP_ARGS(xid, fid, tid, sesid, offset, len),
83 __field(unsigned int, xid)
87 __field(__u64, offset)
94 __entry->sesid = sesid;
95 __entry->offset = offset;
98 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x",
99 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
100 __entry->offset, __entry->len)
103 #define DEFINE_SMB3_RW_DONE_EVENT(name) \
104 DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \
105 TP_PROTO(unsigned int xid, \
111 TP_ARGS(xid, fid, tid, sesid, offset, len))
113 DEFINE_SMB3_RW_DONE_EVENT(write_enter);
114 DEFINE_SMB3_RW_DONE_EVENT(read_enter);
115 DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter);
116 DEFINE_SMB3_RW_DONE_EVENT(zero_enter);
117 DEFINE_SMB3_RW_DONE_EVENT(falloc_enter);
118 DEFINE_SMB3_RW_DONE_EVENT(write_done);
119 DEFINE_SMB3_RW_DONE_EVENT(read_done);
120 DEFINE_SMB3_RW_DONE_EVENT(query_dir_done);
121 DEFINE_SMB3_RW_DONE_EVENT(zero_done);
122 DEFINE_SMB3_RW_DONE_EVENT(falloc_done);
125 * For handle based calls other than read and write, and get/set info
127 DECLARE_EVENT_CLASS(smb3_fd_class,
128 TP_PROTO(unsigned int xid,
132 TP_ARGS(xid, fid, tid, sesid),
134 __field(unsigned int, xid)
137 __field(__u64, sesid)
143 __entry->sesid = sesid;
145 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
146 __entry->xid, __entry->sesid, __entry->tid, __entry->fid)
149 #define DEFINE_SMB3_FD_EVENT(name) \
150 DEFINE_EVENT(smb3_fd_class, smb3_##name, \
151 TP_PROTO(unsigned int xid, \
155 TP_ARGS(xid, fid, tid, sesid))
157 DEFINE_SMB3_FD_EVENT(flush_enter);
158 DEFINE_SMB3_FD_EVENT(flush_done);
159 DEFINE_SMB3_FD_EVENT(close_enter);
160 DEFINE_SMB3_FD_EVENT(close_done);
161 DEFINE_SMB3_FD_EVENT(oplock_not_found);
163 DECLARE_EVENT_CLASS(smb3_fd_err_class,
164 TP_PROTO(unsigned int xid,
169 TP_ARGS(xid, fid, tid, sesid, rc),
171 __field(unsigned int, xid)
174 __field(__u64, sesid)
181 __entry->sesid = sesid;
184 TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d",
185 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
189 #define DEFINE_SMB3_FD_ERR_EVENT(name) \
190 DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \
191 TP_PROTO(unsigned int xid, \
196 TP_ARGS(xid, fid, tid, sesid, rc))
198 DEFINE_SMB3_FD_ERR_EVENT(flush_err);
199 DEFINE_SMB3_FD_ERR_EVENT(lock_err);
200 DEFINE_SMB3_FD_ERR_EVENT(close_err);
203 * For handle based query/set info calls
205 DECLARE_EVENT_CLASS(smb3_inf_enter_class,
206 TP_PROTO(unsigned int xid,
212 TP_ARGS(xid, fid, tid, sesid, infclass, type),
214 __field(unsigned int, xid)
217 __field(__u64, sesid)
218 __field(__u8, infclass)
225 __entry->sesid = sesid;
226 __entry->infclass = infclass;
227 __entry->type = type;
229 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x",
230 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
231 __entry->infclass, __entry->type)
234 #define DEFINE_SMB3_INF_ENTER_EVENT(name) \
235 DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \
236 TP_PROTO(unsigned int xid, \
242 TP_ARGS(xid, fid, tid, sesid, infclass, type))
244 DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
245 DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
246 DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
247 DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
249 DECLARE_EVENT_CLASS(smb3_inf_err_class,
250 TP_PROTO(unsigned int xid,
257 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
259 __field(unsigned int, xid)
262 __field(__u64, sesid)
263 __field(__u8, infclass)
271 __entry->sesid = sesid;
272 __entry->infclass = infclass;
273 __entry->type = type;
276 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d",
277 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
278 __entry->infclass, __entry->type, __entry->rc)
281 #define DEFINE_SMB3_INF_ERR_EVENT(name) \
282 DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \
283 TP_PROTO(unsigned int xid, \
290 TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
292 DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
293 DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
294 DEFINE_SMB3_INF_ERR_EVENT(notify_err);
295 DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
297 DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
298 TP_PROTO(unsigned int xid,
301 const char *full_path),
302 TP_ARGS(xid, tid, sesid, full_path),
304 __field(unsigned int, xid)
306 __field(__u64, sesid)
307 __string(path, full_path)
312 __entry->sesid = sesid;
313 __assign_str(path, full_path);
315 TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
316 __entry->xid, __entry->sesid, __entry->tid,
320 #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \
321 DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \
322 TP_PROTO(unsigned int xid, \
325 const char *full_path), \
326 TP_ARGS(xid, tid, sesid, full_path))
328 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
329 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter);
330 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
331 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
332 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
333 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
334 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
335 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
336 DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
339 DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
340 TP_PROTO(unsigned int xid,
343 TP_ARGS(xid, tid, sesid),
345 __field(unsigned int, xid)
347 __field(__u64, sesid)
352 __entry->sesid = sesid;
354 TP_printk("xid=%u sid=0x%llx tid=0x%x",
355 __entry->xid, __entry->sesid, __entry->tid)
358 #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \
359 DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \
360 TP_PROTO(unsigned int xid, \
363 TP_ARGS(xid, tid, sesid))
365 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
366 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
367 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
368 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
369 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
370 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
371 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
372 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
373 DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
376 DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
377 TP_PROTO(unsigned int xid,
381 TP_ARGS(xid, tid, sesid, rc),
383 __field(unsigned int, xid)
385 __field(__u64, sesid)
391 __entry->sesid = sesid;
394 TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
395 __entry->xid, __entry->sesid, __entry->tid,
399 #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \
400 DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \
401 TP_PROTO(unsigned int xid, \
405 TP_ARGS(xid, tid, sesid, rc))
407 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
408 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
409 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
410 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
411 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
412 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
413 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
414 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
415 DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
418 * For logging SMB3 Status code and Command for responses which return errors
420 DECLARE_EVENT_CLASS(smb3_cmd_err_class,
427 TP_ARGS(tid, sesid, cmd, mid, status, rc),
430 __field(__u64, sesid)
433 __field(__u32, status)
438 __entry->sesid = sesid;
441 __entry->status = status;
444 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
445 __entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
446 __entry->status, __entry->rc)
449 #define DEFINE_SMB3_CMD_ERR_EVENT(name) \
450 DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \
451 TP_PROTO(__u32 tid, \
457 TP_ARGS(tid, sesid, cmd, mid, status, rc))
459 DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
461 DECLARE_EVENT_CLASS(smb3_cmd_done_class,
466 TP_ARGS(tid, sesid, cmd, mid),
469 __field(__u64, sesid)
475 __entry->sesid = sesid;
479 TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
480 __entry->sesid, __entry->tid,
481 __entry->cmd, __entry->mid)
484 #define DEFINE_SMB3_CMD_DONE_EVENT(name) \
485 DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \
486 TP_PROTO(__u32 tid, \
490 TP_ARGS(tid, sesid, cmd, mid))
492 DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
493 DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
494 DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
496 DECLARE_EVENT_CLASS(smb3_mid_class,
500 unsigned long when_sent,
501 unsigned long when_received),
502 TP_ARGS(cmd, mid, pid, when_sent, when_received),
507 __field(unsigned long, when_sent)
508 __field(unsigned long, when_received)
514 __entry->when_sent = when_sent;
515 __entry->when_received = when_received;
517 TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
518 __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
519 __entry->when_received)
522 #define DEFINE_SMB3_MID_EVENT(name) \
523 DEFINE_EVENT(smb3_mid_class, smb3_##name, \
524 TP_PROTO(__u16 cmd, \
527 unsigned long when_sent, \
528 unsigned long when_received), \
529 TP_ARGS(cmd, mid, pid, when_sent, when_received))
531 DEFINE_SMB3_MID_EVENT(slow_rsp);
533 DECLARE_EVENT_CLASS(smb3_exit_err_class,
534 TP_PROTO(unsigned int xid,
535 const char *func_name,
537 TP_ARGS(xid, func_name, rc),
539 __field(unsigned int, xid)
540 __string(func_name, func_name)
545 __assign_str(func_name, func_name);
548 TP_printk("\t%s: xid=%u rc=%d",
549 __get_str(func_name), __entry->xid, __entry->rc)
552 #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \
553 DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \
554 TP_PROTO(unsigned int xid, \
555 const char *func_name, \
557 TP_ARGS(xid, func_name, rc))
559 DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
562 DECLARE_EVENT_CLASS(smb3_sync_err_class,
563 TP_PROTO(unsigned long ino,
567 __field(unsigned long, ino)
574 TP_printk("\tino=%lu rc=%d",
575 __entry->ino, __entry->rc)
578 #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \
579 DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \
580 TP_PROTO(unsigned long ino, \
584 DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
585 DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
588 DECLARE_EVENT_CLASS(smb3_enter_exit_class,
589 TP_PROTO(unsigned int xid,
590 const char *func_name),
591 TP_ARGS(xid, func_name),
593 __field(unsigned int, xid)
594 __string(func_name, func_name)
598 __assign_str(func_name, func_name);
600 TP_printk("\t%s: xid=%u",
601 __get_str(func_name), __entry->xid)
604 #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \
605 DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \
606 TP_PROTO(unsigned int xid, \
607 const char *func_name), \
608 TP_ARGS(xid, func_name))
610 DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
611 DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
614 * For SMB2/SMB3 tree connect
617 DECLARE_EVENT_CLASS(smb3_tcon_class,
618 TP_PROTO(unsigned int xid,
621 const char *unc_name,
623 TP_ARGS(xid, tid, sesid, unc_name, rc),
625 __field(unsigned int, xid)
627 __field(__u64, sesid)
628 __string(name, unc_name)
634 __entry->sesid = sesid;
635 __assign_str(name, unc_name);
638 TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
639 __entry->xid, __entry->sesid, __entry->tid,
640 __get_str(name), __entry->rc)
643 #define DEFINE_SMB3_TCON_EVENT(name) \
644 DEFINE_EVENT(smb3_tcon_class, smb3_##name, \
645 TP_PROTO(unsigned int xid, \
648 const char *unc_name, \
650 TP_ARGS(xid, tid, sesid, unc_name, rc))
652 DEFINE_SMB3_TCON_EVENT(tcon);
656 * For smb2/smb3 open (including create and mkdir) calls
659 DECLARE_EVENT_CLASS(smb3_open_enter_class,
660 TP_PROTO(unsigned int xid,
665 TP_ARGS(xid, tid, sesid, create_options, desired_access),
667 __field(unsigned int, xid)
669 __field(__u64, sesid)
670 __field(int, create_options)
671 __field(int, desired_access)
676 __entry->sesid = sesid;
677 __entry->create_options = create_options;
678 __entry->desired_access = desired_access;
680 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x",
681 __entry->xid, __entry->sesid, __entry->tid,
682 __entry->create_options, __entry->desired_access)
685 #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \
686 DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \
687 TP_PROTO(unsigned int xid, \
690 int create_options, \
691 int desired_access), \
692 TP_ARGS(xid, tid, sesid, create_options, desired_access))
694 DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
695 DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
697 DECLARE_EVENT_CLASS(smb3_open_err_class,
698 TP_PROTO(unsigned int xid,
704 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
706 __field(unsigned int, xid)
708 __field(__u64, sesid)
709 __field(int, create_options)
710 __field(int, desired_access)
716 __entry->sesid = sesid;
717 __entry->create_options = create_options;
718 __entry->desired_access = desired_access;
721 TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
722 __entry->xid, __entry->sesid, __entry->tid,
723 __entry->create_options, __entry->desired_access, __entry->rc)
726 #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \
727 DEFINE_EVENT(smb3_open_err_class, smb3_##name, \
728 TP_PROTO(unsigned int xid, \
731 int create_options, \
732 int desired_access, \
734 TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
736 DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
737 DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
739 DECLARE_EVENT_CLASS(smb3_open_done_class,
740 TP_PROTO(unsigned int xid,
746 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
748 __field(unsigned int, xid)
751 __field(__u64, sesid)
752 __field(int, create_options)
753 __field(int, desired_access)
759 __entry->sesid = sesid;
760 __entry->create_options = create_options;
761 __entry->desired_access = desired_access;
763 TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
764 __entry->xid, __entry->sesid, __entry->tid, __entry->fid,
765 __entry->create_options, __entry->desired_access)
768 #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \
769 DEFINE_EVENT(smb3_open_done_class, smb3_##name, \
770 TP_PROTO(unsigned int xid, \
774 int create_options, \
775 int desired_access), \
776 TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
778 DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
779 DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
782 DECLARE_EVENT_CLASS(smb3_lease_done_class,
783 TP_PROTO(__u32 lease_state,
787 __u64 lease_key_high),
788 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
790 __field(__u32, lease_state)
792 __field(__u64, sesid)
793 __field(__u64, lease_key_low)
794 __field(__u64, lease_key_high)
797 __entry->lease_state = lease_state;
799 __entry->sesid = sesid;
800 __entry->lease_key_low = lease_key_low;
801 __entry->lease_key_high = lease_key_high;
803 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
804 __entry->sesid, __entry->tid, __entry->lease_key_high,
805 __entry->lease_key_low, __entry->lease_state)
808 #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \
809 DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \
810 TP_PROTO(__u32 lease_state, \
813 __u64 lease_key_low, \
814 __u64 lease_key_high), \
815 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
817 DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
818 DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found);
820 DECLARE_EVENT_CLASS(smb3_lease_err_class,
821 TP_PROTO(__u32 lease_state,
825 __u64 lease_key_high,
827 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
829 __field(__u32, lease_state)
831 __field(__u64, sesid)
832 __field(__u64, lease_key_low)
833 __field(__u64, lease_key_high)
837 __entry->lease_state = lease_state;
839 __entry->sesid = sesid;
840 __entry->lease_key_low = lease_key_low;
841 __entry->lease_key_high = lease_key_high;
844 TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
845 __entry->sesid, __entry->tid, __entry->lease_key_high,
846 __entry->lease_key_low, __entry->lease_state, __entry->rc)
849 #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \
850 DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \
851 TP_PROTO(__u32 lease_state, \
854 __u64 lease_key_low, \
855 __u64 lease_key_high, \
857 TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
859 DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
861 DECLARE_EVENT_CLASS(smb3_connect_class,
862 TP_PROTO(char *hostname,
864 const struct __kernel_sockaddr_storage *dst_addr),
865 TP_ARGS(hostname, conn_id, dst_addr),
867 __string(hostname, hostname)
868 __field(__u64, conn_id)
869 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
872 struct sockaddr_storage *pss = NULL;
874 __entry->conn_id = conn_id;
875 pss = (struct sockaddr_storage *)__entry->dst_addr;
877 __assign_str(hostname, hostname);
879 TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc",
885 #define DEFINE_SMB3_CONNECT_EVENT(name) \
886 DEFINE_EVENT(smb3_connect_class, smb3_##name, \
887 TP_PROTO(char *hostname, \
889 const struct __kernel_sockaddr_storage *addr), \
890 TP_ARGS(hostname, conn_id, addr))
892 DEFINE_SMB3_CONNECT_EVENT(connect_done);
894 DECLARE_EVENT_CLASS(smb3_connect_err_class,
895 TP_PROTO(char *hostname, __u64 conn_id,
896 const struct __kernel_sockaddr_storage *dst_addr, int rc),
897 TP_ARGS(hostname, conn_id, dst_addr, rc),
899 __string(hostname, hostname)
900 __field(__u64, conn_id)
901 __array(__u8, dst_addr, sizeof(struct sockaddr_storage))
905 struct sockaddr_storage *pss = NULL;
907 __entry->conn_id = conn_id;
909 pss = (struct sockaddr_storage *)__entry->dst_addr;
911 __assign_str(hostname, hostname);
913 TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc",
920 #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \
921 DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \
922 TP_PROTO(char *hostname, \
924 const struct __kernel_sockaddr_storage *addr, \
926 TP_ARGS(hostname, conn_id, addr, rc))
928 DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err);
930 DECLARE_EVENT_CLASS(smb3_reconnect_class,
931 TP_PROTO(__u64 currmid,
934 TP_ARGS(currmid, conn_id, hostname),
936 __field(__u64, currmid)
937 __field(__u64, conn_id)
938 __string(hostname, hostname)
941 __entry->currmid = currmid;
942 __entry->conn_id = conn_id;
943 __assign_str(hostname, hostname);
945 TP_printk("conn_id=0x%llx server=%s current_mid=%llu",
951 #define DEFINE_SMB3_RECONNECT_EVENT(name) \
952 DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \
953 TP_PROTO(__u64 currmid, \
956 TP_ARGS(currmid, conn_id, hostname))
958 DEFINE_SMB3_RECONNECT_EVENT(reconnect);
959 DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
961 DECLARE_EVENT_CLASS(smb3_credit_class,
962 TP_PROTO(__u64 currmid,
968 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight),
970 __field(__u64, currmid)
971 __field(__u64, conn_id)
972 __string(hostname, hostname)
973 __field(int, credits)
974 __field(int, credits_to_add)
975 __field(int, in_flight)
978 __entry->currmid = currmid;
979 __entry->conn_id = conn_id;
980 __assign_str(hostname, hostname);
981 __entry->credits = credits;
982 __entry->credits_to_add = credits_to_add;
983 __entry->in_flight = in_flight;
985 TP_printk("conn_id=0x%llx server=%s current_mid=%llu "
986 "credits=%d credit_change=%d in_flight=%d",
991 __entry->credits_to_add,
995 #define DEFINE_SMB3_CREDIT_EVENT(name) \
996 DEFINE_EVENT(smb3_credit_class, smb3_##name, \
997 TP_PROTO(__u64 currmid, \
1001 int credits_to_add, \
1003 TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight))
1005 DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
1006 DEFINE_SMB3_CREDIT_EVENT(reconnect_detected);
1007 DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
1008 DEFINE_SMB3_CREDIT_EVENT(insufficient_credits);
1009 DEFINE_SMB3_CREDIT_EVENT(too_many_credits);
1010 DEFINE_SMB3_CREDIT_EVENT(add_credits);
1011 DEFINE_SMB3_CREDIT_EVENT(adj_credits);
1012 DEFINE_SMB3_CREDIT_EVENT(hdr_credits);
1013 DEFINE_SMB3_CREDIT_EVENT(nblk_credits);
1014 DEFINE_SMB3_CREDIT_EVENT(pend_credits);
1015 DEFINE_SMB3_CREDIT_EVENT(wait_credits);
1016 DEFINE_SMB3_CREDIT_EVENT(waitff_credits);
1017 DEFINE_SMB3_CREDIT_EVENT(overflow_credits);
1018 DEFINE_SMB3_CREDIT_EVENT(set_credits);
1020 #endif /* _CIFS_TRACE_H */
1022 #undef TRACE_INCLUDE_PATH
1023 #define TRACE_INCLUDE_PATH .
1024 #define TRACE_INCLUDE_FILE trace
1025 #include <trace/define_trace.h>