Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  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 */
 16DECLARE_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)          \
 49DEFINE_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
 59DEFINE_SMB3_RW_ERR_EVENT(write_err);
 60DEFINE_SMB3_RW_ERR_EVENT(read_err);
 61DEFINE_SMB3_RW_ERR_EVENT(query_dir_err);
 62DEFINE_SMB3_RW_ERR_EVENT(zero_err);
 63DEFINE_SMB3_RW_ERR_EVENT(falloc_err);
 64
 65
 66/* For logging successful read or write */
 67DECLARE_EVENT_CLASS(smb3_rw_done_class,
 68	TP_PROTO(unsigned int xid,
 69		__u64	fid,
 70		__u32	tid,
 71		__u64	sesid,
 72		__u64	offset,
 73		__u32	len),
 74	TP_ARGS(xid, fid, tid, sesid, offset, len),
 75	TP_STRUCT__entry(
 76		__field(unsigned int, xid)
 77		__field(__u64, fid)
 78		__field(__u32, tid)
 79		__field(__u64, sesid)
 80		__field(__u64, offset)
 81		__field(__u32, len)
 82	),
 83	TP_fast_assign(
 84		__entry->xid = xid;
 85		__entry->fid = fid;
 86		__entry->tid = tid;
 87		__entry->sesid = sesid;
 88		__entry->offset = offset;
 89		__entry->len = len;
 90	),
 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)
 94)
 95
 96#define DEFINE_SMB3_RW_DONE_EVENT(name)         \
 97DEFINE_EVENT(smb3_rw_done_class, smb3_##name,   \
 98	TP_PROTO(unsigned int xid,		\
 99		__u64	fid,			\
100		__u32	tid,			\
101		__u64	sesid,			\
102		__u64	offset,			\
103		__u32	len),			\
104	TP_ARGS(xid, fid, tid, sesid, offset, len))
105
106DEFINE_SMB3_RW_DONE_EVENT(write_enter);
107DEFINE_SMB3_RW_DONE_EVENT(read_enter);
108DEFINE_SMB3_RW_DONE_EVENT(query_dir_enter);
109DEFINE_SMB3_RW_DONE_EVENT(zero_enter);
110DEFINE_SMB3_RW_DONE_EVENT(falloc_enter);
111DEFINE_SMB3_RW_DONE_EVENT(write_done);
112DEFINE_SMB3_RW_DONE_EVENT(read_done);
113DEFINE_SMB3_RW_DONE_EVENT(query_dir_done);
114DEFINE_SMB3_RW_DONE_EVENT(zero_done);
115DEFINE_SMB3_RW_DONE_EVENT(falloc_done);
116
117/*
118 * For handle based calls other than read and write, and get/set info
119 */
120DECLARE_EVENT_CLASS(smb3_fd_class,
121	TP_PROTO(unsigned int xid,
122		__u64	fid,
123		__u32	tid,
124		__u64	sesid),
125	TP_ARGS(xid, fid, tid, sesid),
126	TP_STRUCT__entry(
127		__field(unsigned int, xid)
128		__field(__u64, fid)
129		__field(__u32, tid)
130		__field(__u64, sesid)
131	),
132	TP_fast_assign(
133		__entry->xid = xid;
134		__entry->fid = fid;
135		__entry->tid = tid;
136		__entry->sesid = sesid;
137	),
138	TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx",
139		__entry->xid, __entry->sesid, __entry->tid, __entry->fid)
140)
141
142#define DEFINE_SMB3_FD_EVENT(name)          \
143DEFINE_EVENT(smb3_fd_class, smb3_##name,    \
144	TP_PROTO(unsigned int xid,		\
145		__u64	fid,			\
146		__u32	tid,			\
147		__u64	sesid),			\
148	TP_ARGS(xid, fid, tid, sesid))
149
150DEFINE_SMB3_FD_EVENT(flush_enter);
151DEFINE_SMB3_FD_EVENT(flush_done);
152DEFINE_SMB3_FD_EVENT(close_enter);
153DEFINE_SMB3_FD_EVENT(close_done);
154
155DECLARE_EVENT_CLASS(smb3_fd_err_class,
156	TP_PROTO(unsigned int xid,
157		__u64	fid,
158		__u32	tid,
159		__u64	sesid,
160		int	rc),
161	TP_ARGS(xid, fid, tid, sesid, rc),
162	TP_STRUCT__entry(
163		__field(unsigned int, xid)
164		__field(__u64, fid)
165		__field(__u32, tid)
166		__field(__u64, sesid)
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->rc = rc;
175	),
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,
178		__entry->rc)
179)
180
181#define DEFINE_SMB3_FD_ERR_EVENT(name)          \
182DEFINE_EVENT(smb3_fd_err_class, smb3_##name,    \
183	TP_PROTO(unsigned int xid,		\
184		__u64	fid,			\
185		__u32	tid,			\
186		__u64	sesid,			\
187		int	rc),			\
188	TP_ARGS(xid, fid, tid, sesid, rc))
189
190DEFINE_SMB3_FD_ERR_EVENT(flush_err);
191DEFINE_SMB3_FD_ERR_EVENT(lock_err);
192DEFINE_SMB3_FD_ERR_EVENT(close_err);
193
194/*
195 * For handle based query/set info calls
196 */
197DECLARE_EVENT_CLASS(smb3_inf_enter_class,
198	TP_PROTO(unsigned int xid,
199		__u64	fid,
200		__u32	tid,
201		__u64	sesid,
202		__u8	infclass,
203		__u32	type),
204	TP_ARGS(xid, fid, tid, sesid, infclass, type),
205	TP_STRUCT__entry(
206		__field(unsigned int, xid)
207		__field(__u64, fid)
208		__field(__u32, tid)
209		__field(__u64, sesid)
210		__field(__u8, infclass)
211		__field(__u32, type)
212	),
213	TP_fast_assign(
214		__entry->xid = xid;
215		__entry->fid = fid;
216		__entry->tid = tid;
217		__entry->sesid = sesid;
218		__entry->infclass = infclass;
219		__entry->type = type;
220	),
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)
224)
225
226#define DEFINE_SMB3_INF_ENTER_EVENT(name)          \
227DEFINE_EVENT(smb3_inf_enter_class, smb3_##name,    \
228	TP_PROTO(unsigned int xid,		\
229		__u64	fid,			\
230		__u32	tid,			\
231		__u64	sesid,			\
232		__u8	infclass,		\
233		__u32	type),			\
234	TP_ARGS(xid, fid, tid, sesid, infclass, type))
235
236DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter);
237DEFINE_SMB3_INF_ENTER_EVENT(query_info_done);
238DEFINE_SMB3_INF_ENTER_EVENT(notify_enter);
239DEFINE_SMB3_INF_ENTER_EVENT(notify_done);
240
241DECLARE_EVENT_CLASS(smb3_inf_err_class,
242	TP_PROTO(unsigned int xid,
243		__u64	fid,
244		__u32	tid,
245		__u64	sesid,
246		__u8	infclass,
247		__u32	type,
248		int	rc),
249	TP_ARGS(xid, fid, tid, sesid, infclass, type, rc),
250	TP_STRUCT__entry(
251		__field(unsigned int, xid)
252		__field(__u64, fid)
253		__field(__u32, tid)
254		__field(__u64, sesid)
255		__field(__u8, infclass)
256		__field(__u32, type)
257		__field(int, rc)
258	),
259	TP_fast_assign(
260		__entry->xid = xid;
261		__entry->fid = fid;
262		__entry->tid = tid;
263		__entry->sesid = sesid;
264		__entry->infclass = infclass;
265		__entry->type = type;
266		__entry->rc = rc;
267	),
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)
271)
272
273#define DEFINE_SMB3_INF_ERR_EVENT(name)          \
274DEFINE_EVENT(smb3_inf_err_class, smb3_##name,    \
275	TP_PROTO(unsigned int xid,		\
276		__u64	fid,			\
277		__u32	tid,			\
278		__u64	sesid,			\
279		__u8	infclass,		\
280		__u32	type,			\
281		int	rc),			\
282	TP_ARGS(xid, fid, tid, sesid, infclass, type, rc))
283
284DEFINE_SMB3_INF_ERR_EVENT(query_info_err);
285DEFINE_SMB3_INF_ERR_EVENT(set_info_err);
286DEFINE_SMB3_INF_ERR_EVENT(notify_err);
287DEFINE_SMB3_INF_ERR_EVENT(fsctl_err);
288
289DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class,
290	TP_PROTO(unsigned int xid,
291		__u32	tid,
292		__u64	sesid,
293		const char *full_path),
294	TP_ARGS(xid, tid, sesid, full_path),
295	TP_STRUCT__entry(
296		__field(unsigned int, xid)
297		__field(__u32, tid)
298		__field(__u64, sesid)
299		__string(path, full_path)
300	),
301	TP_fast_assign(
302		__entry->xid = xid;
303		__entry->tid = tid;
304		__entry->sesid = sesid;
305		__assign_str(path, full_path);
306	),
307	TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s",
308		__entry->xid, __entry->sesid, __entry->tid,
309		__get_str(path))
310)
311
312#define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name)     \
313DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name,    \
314	TP_PROTO(unsigned int xid,		\
315		__u32	tid,			\
316		__u64	sesid,			\
317		const char *full_path),		\
318	TP_ARGS(xid, tid, sesid, full_path))
319
320DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter);
321DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
322DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
323DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
324DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
325DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
326DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
327DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
328
329
330DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
331	TP_PROTO(unsigned int xid,
332		__u32	tid,
333		__u64	sesid),
334	TP_ARGS(xid, tid, sesid),
335	TP_STRUCT__entry(
336		__field(unsigned int, xid)
337		__field(__u32, tid)
338		__field(__u64, sesid)
339	),
340	TP_fast_assign(
341		__entry->xid = xid;
342		__entry->tid = tid;
343		__entry->sesid = sesid;
344	),
345	TP_printk("xid=%u sid=0x%llx tid=0x%x",
346		__entry->xid, __entry->sesid, __entry->tid)
347)
348
349#define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name)     \
350DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name,    \
351	TP_PROTO(unsigned int xid,		\
352		__u32	tid,			\
353		__u64	sesid),			\
354	TP_ARGS(xid, tid, sesid))
355
356DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
357DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
358DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
359DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
360DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
361DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
362DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
363DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
364
365
366DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
367	TP_PROTO(unsigned int xid,
368		__u32	tid,
369		__u64	sesid,
370		int	rc),
371	TP_ARGS(xid, tid, sesid, rc),
372	TP_STRUCT__entry(
373		__field(unsigned int, xid)
374		__field(__u32, tid)
375		__field(__u64, sesid)
376		__field(int, rc)
377	),
378	TP_fast_assign(
379		__entry->xid = xid;
380		__entry->tid = tid;
381		__entry->sesid = sesid;
382		__entry->rc = rc;
383	),
384	TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
385		__entry->xid, __entry->sesid, __entry->tid,
386		__entry->rc)
387)
388
389#define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name)     \
390DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name,    \
391	TP_PROTO(unsigned int xid,		\
392		__u32	tid,			\
393		__u64	sesid,			\
394		int rc),			\
395	TP_ARGS(xid, tid, sesid, rc))
396
397DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
398DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
399DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
400DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
401DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
402DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
403DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
404DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
405
406/*
407 * For logging SMB3 Status code and Command for responses which return errors
408 */
409DECLARE_EVENT_CLASS(smb3_cmd_err_class,
410	TP_PROTO(__u32	tid,
411		__u64	sesid,
412		__u16	cmd,
413		__u64	mid,
414		__u32	status,
415		int	rc),
416	TP_ARGS(tid, sesid, cmd, mid, status, rc),
417	TP_STRUCT__entry(
418		__field(__u32, tid)
419		__field(__u64, sesid)
420		__field(__u16, cmd)
421		__field(__u64, mid)
422		__field(__u32, status)
423		__field(int, rc)
424	),
425	TP_fast_assign(
426		__entry->tid = tid;
427		__entry->sesid = sesid;
428		__entry->cmd = cmd;
429		__entry->mid = mid;
430		__entry->status = status;
431		__entry->rc = rc;
432	),
433	TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d",
434		__entry->sesid, __entry->tid, __entry->cmd, __entry->mid,
435		__entry->status, __entry->rc)
436)
437
438#define DEFINE_SMB3_CMD_ERR_EVENT(name)          \
439DEFINE_EVENT(smb3_cmd_err_class, smb3_##name,    \
440	TP_PROTO(__u32	tid,			\
441		__u64	sesid,			\
442		__u16	cmd,			\
443		__u64	mid,			\
444		__u32	status,			\
445		int	rc),			\
446	TP_ARGS(tid, sesid, cmd, mid, status, rc))
447
448DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
449
450DECLARE_EVENT_CLASS(smb3_cmd_done_class,
451	TP_PROTO(__u32	tid,
452		__u64	sesid,
453		__u16	cmd,
454		__u64	mid),
455	TP_ARGS(tid, sesid, cmd, mid),
456	TP_STRUCT__entry(
457		__field(__u32, tid)
458		__field(__u64, sesid)
459		__field(__u16, cmd)
460		__field(__u64, mid)
461	),
462	TP_fast_assign(
463		__entry->tid = tid;
464		__entry->sesid = sesid;
465		__entry->cmd = cmd;
466		__entry->mid = mid;
467	),
468	TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
469		__entry->sesid, __entry->tid,
470		__entry->cmd, __entry->mid)
471)
472
473#define DEFINE_SMB3_CMD_DONE_EVENT(name)          \
474DEFINE_EVENT(smb3_cmd_done_class, smb3_##name,    \
475	TP_PROTO(__u32	tid,			\
476		__u64	sesid,			\
477		__u16	cmd,			\
478		__u64	mid),			\
479	TP_ARGS(tid, sesid, cmd, mid))
480
481DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
482DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
483DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
484
485DECLARE_EVENT_CLASS(smb3_mid_class,
486	TP_PROTO(__u16	cmd,
487		__u64	mid,
488		__u32	pid,
489		unsigned long when_sent,
490		unsigned long when_received),
491	TP_ARGS(cmd, mid, pid, when_sent, when_received),
492	TP_STRUCT__entry(
493		__field(__u16, cmd)
494		__field(__u64, mid)
495		__field(__u32, pid)
496		__field(unsigned long, when_sent)
497		__field(unsigned long, when_received)
498	),
499	TP_fast_assign(
500		__entry->cmd = cmd;
501		__entry->mid = mid;
502		__entry->pid = pid;
503		__entry->when_sent = when_sent;
504		__entry->when_received = when_received;
505	),
506	TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu",
507		__entry->cmd, __entry->mid, __entry->pid, __entry->when_sent,
508		__entry->when_received)
509)
510
511#define DEFINE_SMB3_MID_EVENT(name)          \
512DEFINE_EVENT(smb3_mid_class, smb3_##name,    \
513	TP_PROTO(__u16	cmd,			\
514		__u64	mid,			\
515		__u32	pid,			\
516		unsigned long when_sent,	\
517		unsigned long when_received),	\
518	TP_ARGS(cmd, mid, pid, when_sent, when_received))
519
520DEFINE_SMB3_MID_EVENT(slow_rsp);
521
522DECLARE_EVENT_CLASS(smb3_exit_err_class,
523	TP_PROTO(unsigned int xid,
524		const char *func_name,
525		int	rc),
526	TP_ARGS(xid, func_name, rc),
527	TP_STRUCT__entry(
528		__field(unsigned int, xid)
529		__field(const char *, func_name)
530		__field(int, rc)
531	),
532	TP_fast_assign(
533		__entry->xid = xid;
534		__entry->func_name = func_name;
535		__entry->rc = rc;
536	),
537	TP_printk("\t%s: xid=%u rc=%d",
538		__entry->func_name, __entry->xid, __entry->rc)
539)
540
541#define DEFINE_SMB3_EXIT_ERR_EVENT(name)          \
542DEFINE_EVENT(smb3_exit_err_class, smb3_##name,    \
543	TP_PROTO(unsigned int xid,		\
544		const char *func_name,		\
545		int	rc),			\
546	TP_ARGS(xid, func_name, rc))
547
548DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
549
550DECLARE_EVENT_CLASS(smb3_enter_exit_class,
551	TP_PROTO(unsigned int xid,
552		const char *func_name),
553	TP_ARGS(xid, func_name),
554	TP_STRUCT__entry(
555		__field(unsigned int, xid)
556		__field(const char *, func_name)
557	),
558	TP_fast_assign(
559		__entry->xid = xid;
560		__entry->func_name = func_name;
561	),
562	TP_printk("\t%s: xid=%u",
563		__entry->func_name, __entry->xid)
564)
565
566#define DEFINE_SMB3_ENTER_EXIT_EVENT(name)        \
567DEFINE_EVENT(smb3_enter_exit_class, smb3_##name,  \
568	TP_PROTO(unsigned int xid,		\
569		const char *func_name),		\
570	TP_ARGS(xid, func_name))
571
572DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
573DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
574
575/*
576 * For SMB2/SMB3 tree connect
577 */
578
579DECLARE_EVENT_CLASS(smb3_tcon_class,
580	TP_PROTO(unsigned int xid,
581		__u32	tid,
582		__u64	sesid,
583		const char *unc_name,
584		int	rc),
585	TP_ARGS(xid, tid, sesid, unc_name, rc),
586	TP_STRUCT__entry(
587		__field(unsigned int, xid)
588		__field(__u32, tid)
589		__field(__u64, sesid)
590		__string(name, unc_name)
591		__field(int, rc)
592	),
593	TP_fast_assign(
594		__entry->xid = xid;
595		__entry->tid = tid;
596		__entry->sesid = sesid;
597		__assign_str(name, unc_name);
598		__entry->rc = rc;
599	),
600	TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d",
601		__entry->xid, __entry->sesid, __entry->tid,
602		__get_str(name), __entry->rc)
603)
604
605#define DEFINE_SMB3_TCON_EVENT(name)          \
606DEFINE_EVENT(smb3_tcon_class, smb3_##name,    \
607	TP_PROTO(unsigned int xid,		\
608		__u32	tid,			\
609		__u64	sesid,			\
610		const char *unc_name,		\
611		int	rc),			\
612	TP_ARGS(xid, tid, sesid, unc_name, rc))
613
614DEFINE_SMB3_TCON_EVENT(tcon);
615
616
617/*
618 * For smb2/smb3 open (including create and mkdir) calls
619 */
620
621DECLARE_EVENT_CLASS(smb3_open_enter_class,
622	TP_PROTO(unsigned int xid,
623		__u32	tid,
624		__u64	sesid,
625		int	create_options,
626		int	desired_access),
627	TP_ARGS(xid, tid, sesid, create_options, desired_access),
628	TP_STRUCT__entry(
629		__field(unsigned int, xid)
630		__field(__u32, tid)
631		__field(__u64, sesid)
632		__field(int, create_options)
633		__field(int, desired_access)
634	),
635	TP_fast_assign(
636		__entry->xid = xid;
637		__entry->tid = tid;
638		__entry->sesid = sesid;
639		__entry->create_options = create_options;
640		__entry->desired_access = desired_access;
641	),
642	TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x",
643		__entry->xid, __entry->sesid, __entry->tid,
644		__entry->create_options, __entry->desired_access)
645)
646
647#define DEFINE_SMB3_OPEN_ENTER_EVENT(name)        \
648DEFINE_EVENT(smb3_open_enter_class, smb3_##name,  \
649	TP_PROTO(unsigned int xid,		\
650		__u32	tid,			\
651		__u64	sesid,			\
652		int	create_options,		\
653		int	desired_access),	\
654	TP_ARGS(xid, tid, sesid, create_options, desired_access))
655
656DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
657DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
658
659DECLARE_EVENT_CLASS(smb3_open_err_class,
660	TP_PROTO(unsigned int xid,
661		__u32	tid,
662		__u64	sesid,
663		int	create_options,
664		int	desired_access,
665		int	rc),
666	TP_ARGS(xid, tid, sesid, create_options, desired_access, rc),
667	TP_STRUCT__entry(
668		__field(unsigned int, xid)
669		__field(__u32, tid)
670		__field(__u64, sesid)
671		__field(int,   create_options)
672		__field(int, desired_access)
673		__field(int, rc)
674	),
675	TP_fast_assign(
676		__entry->xid = xid;
677		__entry->tid = tid;
678		__entry->sesid = sesid;
679		__entry->create_options = create_options;
680		__entry->desired_access = desired_access;
681		__entry->rc = rc;
682	),
683	TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d",
684		__entry->xid, __entry->sesid, __entry->tid,
685		__entry->create_options, __entry->desired_access, __entry->rc)
686)
687
688#define DEFINE_SMB3_OPEN_ERR_EVENT(name)          \
689DEFINE_EVENT(smb3_open_err_class, smb3_##name,    \
690	TP_PROTO(unsigned int xid,		\
691		__u32	tid,			\
692		__u64	sesid,			\
693		int	create_options,		\
694		int	desired_access,		\
695		int	rc),			\
696	TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
697
698DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
699DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
700
701DECLARE_EVENT_CLASS(smb3_open_done_class,
702	TP_PROTO(unsigned int xid,
703		__u64	fid,
704		__u32	tid,
705		__u64	sesid,
706		int	create_options,
707		int	desired_access),
708	TP_ARGS(xid, fid, tid, sesid, create_options, desired_access),
709	TP_STRUCT__entry(
710		__field(unsigned int, xid)
711		__field(__u64, fid)
712		__field(__u32, tid)
713		__field(__u64, sesid)
714		__field(int, create_options)
715		__field(int, desired_access)
716	),
717	TP_fast_assign(
718		__entry->xid = xid;
719		__entry->fid = fid;
720		__entry->tid = tid;
721		__entry->sesid = sesid;
722		__entry->create_options = create_options;
723		__entry->desired_access = desired_access;
724	),
725	TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x",
726		__entry->xid, __entry->sesid, __entry->tid, __entry->fid,
727		__entry->create_options, __entry->desired_access)
728)
729
730#define DEFINE_SMB3_OPEN_DONE_EVENT(name)        \
731DEFINE_EVENT(smb3_open_done_class, smb3_##name,  \
732	TP_PROTO(unsigned int xid,		\
733		__u64	fid,			\
734		__u32	tid,			\
735		__u64	sesid,			\
736		int	create_options,		\
737		int	desired_access),	\
738	TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
739
740DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
741DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
742
743
744DECLARE_EVENT_CLASS(smb3_lease_done_class,
745	TP_PROTO(__u32	lease_state,
746		__u32	tid,
747		__u64	sesid,
748		__u64	lease_key_low,
749		__u64	lease_key_high),
750	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
751	TP_STRUCT__entry(
752		__field(__u32, lease_state)
753		__field(__u32, tid)
754		__field(__u64, sesid)
755		__field(__u64, lease_key_low)
756		__field(__u64, lease_key_high)
757	),
758	TP_fast_assign(
759		__entry->lease_state = lease_state;
760		__entry->tid = tid;
761		__entry->sesid = sesid;
762		__entry->lease_key_low = lease_key_low;
763		__entry->lease_key_high = lease_key_high;
764	),
765	TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x",
766		__entry->sesid, __entry->tid, __entry->lease_key_high,
767		__entry->lease_key_low, __entry->lease_state)
768)
769
770#define DEFINE_SMB3_LEASE_DONE_EVENT(name)        \
771DEFINE_EVENT(smb3_lease_done_class, smb3_##name,  \
772	TP_PROTO(__u32	lease_state,		\
773		__u32	tid,			\
774		__u64	sesid,			\
775		__u64	lease_key_low,		\
776		__u64	lease_key_high),	\
777	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
778
779DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
780
781DECLARE_EVENT_CLASS(smb3_lease_err_class,
782	TP_PROTO(__u32	lease_state,
783		__u32	tid,
784		__u64	sesid,
785		__u64	lease_key_low,
786		__u64	lease_key_high,
787		int	rc),
788	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc),
789	TP_STRUCT__entry(
790		__field(__u32, lease_state)
791		__field(__u32, tid)
792		__field(__u64, sesid)
793		__field(__u64, lease_key_low)
794		__field(__u64, lease_key_high)
795		__field(int, rc)
796	),
797	TP_fast_assign(
798		__entry->lease_state = lease_state;
799		__entry->tid = tid;
800		__entry->sesid = sesid;
801		__entry->lease_key_low = lease_key_low;
802		__entry->lease_key_high = lease_key_high;
803		__entry->rc = rc;
804	),
805	TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d",
806		__entry->sesid, __entry->tid, __entry->lease_key_high,
807		__entry->lease_key_low, __entry->lease_state, __entry->rc)
808)
809
810#define DEFINE_SMB3_LEASE_ERR_EVENT(name)        \
811DEFINE_EVENT(smb3_lease_err_class, smb3_##name,  \
812	TP_PROTO(__u32	lease_state,		\
813		__u32	tid,			\
814		__u64	sesid,			\
815		__u64	lease_key_low,		\
816		__u64	lease_key_high,		\
817		int	rc),			\
818	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
819
820DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
821
822DECLARE_EVENT_CLASS(smb3_reconnect_class,
823	TP_PROTO(__u64	currmid,
824		char *hostname),
825	TP_ARGS(currmid, hostname),
826	TP_STRUCT__entry(
827		__field(__u64, currmid)
828		__field(char *, hostname)
829	),
830	TP_fast_assign(
831		__entry->currmid = currmid;
832		__entry->hostname = hostname;
833	),
834	TP_printk("server=%s current_mid=0x%llx",
835		__entry->hostname,
836		__entry->currmid)
837)
838
839#define DEFINE_SMB3_RECONNECT_EVENT(name)        \
840DEFINE_EVENT(smb3_reconnect_class, smb3_##name,  \
841	TP_PROTO(__u64	currmid,		\
842		char *hostname),		\
843	TP_ARGS(currmid, hostname))
844
845DEFINE_SMB3_RECONNECT_EVENT(reconnect);
846DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
847
848DECLARE_EVENT_CLASS(smb3_credit_class,
849	TP_PROTO(__u64	currmid,
850		char *hostname,
851		int credits),
852	TP_ARGS(currmid, hostname, credits),
853	TP_STRUCT__entry(
854		__field(__u64, currmid)
855		__field(char *, hostname)
856		__field(int, credits)
857	),
858	TP_fast_assign(
859		__entry->currmid = currmid;
860		__entry->hostname = hostname;
861		__entry->credits = credits;
862	),
863	TP_printk("server=%s current_mid=0x%llx credits=%d",
864		__entry->hostname,
865		__entry->currmid,
866		__entry->credits)
867)
868
869#define DEFINE_SMB3_CREDIT_EVENT(name)        \
870DEFINE_EVENT(smb3_credit_class, smb3_##name,  \
871	TP_PROTO(__u64	currmid,		\
872		char *hostname,			\
873		int  credits),			\
874	TP_ARGS(currmid, hostname, credits))
875
876DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
877DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
878
879#endif /* _CIFS_TRACE_H */
880
881#undef TRACE_INCLUDE_PATH
882#define TRACE_INCLUDE_PATH .
883#define TRACE_INCLUDE_FILE trace
884#include <trace/define_trace.h>