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(posix_query_info_compound_enter);
322DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter);
323DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter);
324DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter);
325DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter);
326DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter);
327DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter);
328DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter);
329
330
331DECLARE_EVENT_CLASS(smb3_inf_compound_done_class,
332	TP_PROTO(unsigned int xid,
333		__u32	tid,
334		__u64	sesid),
335	TP_ARGS(xid, tid, sesid),
336	TP_STRUCT__entry(
337		__field(unsigned int, xid)
338		__field(__u32, tid)
339		__field(__u64, sesid)
340	),
341	TP_fast_assign(
342		__entry->xid = xid;
343		__entry->tid = tid;
344		__entry->sesid = sesid;
345	),
346	TP_printk("xid=%u sid=0x%llx tid=0x%x",
347		__entry->xid, __entry->sesid, __entry->tid)
348)
349
350#define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name)     \
351DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name,    \
352	TP_PROTO(unsigned int xid,		\
353		__u32	tid,			\
354		__u64	sesid),			\
355	TP_ARGS(xid, tid, sesid))
356
357DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done);
358DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done);
359DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done);
360DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done);
361DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done);
362DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done);
363DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done);
364DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done);
365DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done);
366
367
368DECLARE_EVENT_CLASS(smb3_inf_compound_err_class,
369	TP_PROTO(unsigned int xid,
370		__u32	tid,
371		__u64	sesid,
372		int	rc),
373	TP_ARGS(xid, tid, sesid, rc),
374	TP_STRUCT__entry(
375		__field(unsigned int, xid)
376		__field(__u32, tid)
377		__field(__u64, sesid)
378		__field(int, rc)
379	),
380	TP_fast_assign(
381		__entry->xid = xid;
382		__entry->tid = tid;
383		__entry->sesid = sesid;
384		__entry->rc = rc;
385	),
386	TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d",
387		__entry->xid, __entry->sesid, __entry->tid,
388		__entry->rc)
389)
390
391#define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name)     \
392DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name,    \
393	TP_PROTO(unsigned int xid,		\
394		__u32	tid,			\
395		__u64	sesid,			\
396		int rc),			\
397	TP_ARGS(xid, tid, sesid, rc))
398
399DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err);
400DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err);
401DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err);
402DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err);
403DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err);
404DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err);
405DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err);
406DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err);
407DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err);
408
409/*
410 * For logging SMB3 Status code and Command for responses which return errors
411 */
412DECLARE_EVENT_CLASS(smb3_cmd_err_class,
413	TP_PROTO(__u32	tid,
414		__u64	sesid,
415		__u16	cmd,
416		__u64	mid,
417		__u32	status,
418		int	rc),
419	TP_ARGS(tid, sesid, cmd, mid, status, rc),
420	TP_STRUCT__entry(
421		__field(__u32, tid)
422		__field(__u64, sesid)
423		__field(__u16, cmd)
424		__field(__u64, mid)
425		__field(__u32, status)
426		__field(int, rc)
427	),
428	TP_fast_assign(
429		__entry->tid = tid;
430		__entry->sesid = sesid;
431		__entry->cmd = cmd;
432		__entry->mid = mid;
433		__entry->status = status;
434		__entry->rc = rc;
435	),
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)
439)
440
441#define DEFINE_SMB3_CMD_ERR_EVENT(name)          \
442DEFINE_EVENT(smb3_cmd_err_class, smb3_##name,    \
443	TP_PROTO(__u32	tid,			\
444		__u64	sesid,			\
445		__u16	cmd,			\
446		__u64	mid,			\
447		__u32	status,			\
448		int	rc),			\
449	TP_ARGS(tid, sesid, cmd, mid, status, rc))
450
451DEFINE_SMB3_CMD_ERR_EVENT(cmd_err);
452
453DECLARE_EVENT_CLASS(smb3_cmd_done_class,
454	TP_PROTO(__u32	tid,
455		__u64	sesid,
456		__u16	cmd,
457		__u64	mid),
458	TP_ARGS(tid, sesid, cmd, mid),
459	TP_STRUCT__entry(
460		__field(__u32, tid)
461		__field(__u64, sesid)
462		__field(__u16, cmd)
463		__field(__u64, mid)
464	),
465	TP_fast_assign(
466		__entry->tid = tid;
467		__entry->sesid = sesid;
468		__entry->cmd = cmd;
469		__entry->mid = mid;
470	),
471	TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu",
472		__entry->sesid, __entry->tid,
473		__entry->cmd, __entry->mid)
474)
475
476#define DEFINE_SMB3_CMD_DONE_EVENT(name)          \
477DEFINE_EVENT(smb3_cmd_done_class, smb3_##name,    \
478	TP_PROTO(__u32	tid,			\
479		__u64	sesid,			\
480		__u16	cmd,			\
481		__u64	mid),			\
482	TP_ARGS(tid, sesid, cmd, mid))
483
484DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter);
485DEFINE_SMB3_CMD_DONE_EVENT(cmd_done);
486DEFINE_SMB3_CMD_DONE_EVENT(ses_expired);
487
488DECLARE_EVENT_CLASS(smb3_mid_class,
489	TP_PROTO(__u16	cmd,
490		__u64	mid,
491		__u32	pid,
492		unsigned long when_sent,
493		unsigned long when_received),
494	TP_ARGS(cmd, mid, pid, when_sent, when_received),
495	TP_STRUCT__entry(
496		__field(__u16, cmd)
497		__field(__u64, mid)
498		__field(__u32, pid)
499		__field(unsigned long, when_sent)
500		__field(unsigned long, when_received)
501	),
502	TP_fast_assign(
503		__entry->cmd = cmd;
504		__entry->mid = mid;
505		__entry->pid = pid;
506		__entry->when_sent = when_sent;
507		__entry->when_received = when_received;
508	),
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)
512)
513
514#define DEFINE_SMB3_MID_EVENT(name)          \
515DEFINE_EVENT(smb3_mid_class, smb3_##name,    \
516	TP_PROTO(__u16	cmd,			\
517		__u64	mid,			\
518		__u32	pid,			\
519		unsigned long when_sent,	\
520		unsigned long when_received),	\
521	TP_ARGS(cmd, mid, pid, when_sent, when_received))
522
523DEFINE_SMB3_MID_EVENT(slow_rsp);
524
525DECLARE_EVENT_CLASS(smb3_exit_err_class,
526	TP_PROTO(unsigned int xid,
527		const char *func_name,
528		int	rc),
529	TP_ARGS(xid, func_name, rc),
530	TP_STRUCT__entry(
531		__field(unsigned int, xid)
532		__field(const char *, func_name)
533		__field(int, rc)
534	),
535	TP_fast_assign(
536		__entry->xid = xid;
537		__entry->func_name = func_name;
538		__entry->rc = rc;
539	),
540	TP_printk("\t%s: xid=%u rc=%d",
541		__entry->func_name, __entry->xid, __entry->rc)
542)
543
544#define DEFINE_SMB3_EXIT_ERR_EVENT(name)          \
545DEFINE_EVENT(smb3_exit_err_class, smb3_##name,    \
546	TP_PROTO(unsigned int xid,		\
547		const char *func_name,		\
548		int	rc),			\
549	TP_ARGS(xid, func_name, rc))
550
551DEFINE_SMB3_EXIT_ERR_EVENT(exit_err);
552
553
554DECLARE_EVENT_CLASS(smb3_sync_err_class,
555	TP_PROTO(unsigned long ino,
556		int	rc),
557	TP_ARGS(ino, rc),
558	TP_STRUCT__entry(
559		__field(unsigned long, ino)
560		__field(int, rc)
561	),
562	TP_fast_assign(
563		__entry->ino = ino;
564		__entry->rc = rc;
565	),
566	TP_printk("\tino=%lu rc=%d",
567		__entry->ino, __entry->rc)
568)
569
570#define DEFINE_SMB3_SYNC_ERR_EVENT(name)          \
571DEFINE_EVENT(smb3_sync_err_class, cifs_##name,    \
572	TP_PROTO(unsigned long ino,		\
573		int	rc),			\
574	TP_ARGS(ino, rc))
575
576DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err);
577DEFINE_SMB3_SYNC_ERR_EVENT(flush_err);
578
579
580DECLARE_EVENT_CLASS(smb3_enter_exit_class,
581	TP_PROTO(unsigned int xid,
582		const char *func_name),
583	TP_ARGS(xid, func_name),
584	TP_STRUCT__entry(
585		__field(unsigned int, xid)
586		__field(const char *, func_name)
587	),
588	TP_fast_assign(
589		__entry->xid = xid;
590		__entry->func_name = func_name;
591	),
592	TP_printk("\t%s: xid=%u",
593		__entry->func_name, __entry->xid)
594)
595
596#define DEFINE_SMB3_ENTER_EXIT_EVENT(name)        \
597DEFINE_EVENT(smb3_enter_exit_class, smb3_##name,  \
598	TP_PROTO(unsigned int xid,		\
599		const char *func_name),		\
600	TP_ARGS(xid, func_name))
601
602DEFINE_SMB3_ENTER_EXIT_EVENT(enter);
603DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done);
604
605/*
606 * For SMB2/SMB3 tree connect
607 */
608
609DECLARE_EVENT_CLASS(smb3_tcon_class,
610	TP_PROTO(unsigned int xid,
611		__u32	tid,
612		__u64	sesid,
613		const char *unc_name,
614		int	rc),
615	TP_ARGS(xid, tid, sesid, unc_name, rc),
616	TP_STRUCT__entry(
617		__field(unsigned int, xid)
618		__field(__u32, tid)
619		__field(__u64, sesid)
620		__string(name, unc_name)
621		__field(int, rc)
622	),
623	TP_fast_assign(
624		__entry->xid = xid;
625		__entry->tid = tid;
626		__entry->sesid = sesid;
627		__assign_str(name, unc_name);
628		__entry->rc = rc;
629	),
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)
633)
634
635#define DEFINE_SMB3_TCON_EVENT(name)          \
636DEFINE_EVENT(smb3_tcon_class, smb3_##name,    \
637	TP_PROTO(unsigned int xid,		\
638		__u32	tid,			\
639		__u64	sesid,			\
640		const char *unc_name,		\
641		int	rc),			\
642	TP_ARGS(xid, tid, sesid, unc_name, rc))
643
644DEFINE_SMB3_TCON_EVENT(tcon);
645
646
647/*
648 * For smb2/smb3 open (including create and mkdir) calls
649 */
650
651DECLARE_EVENT_CLASS(smb3_open_enter_class,
652	TP_PROTO(unsigned int xid,
653		__u32	tid,
654		__u64	sesid,
655		int	create_options,
656		int	desired_access),
657	TP_ARGS(xid, tid, sesid, create_options, desired_access),
658	TP_STRUCT__entry(
659		__field(unsigned int, xid)
660		__field(__u32, tid)
661		__field(__u64, sesid)
662		__field(int, create_options)
663		__field(int, desired_access)
664	),
665	TP_fast_assign(
666		__entry->xid = xid;
667		__entry->tid = tid;
668		__entry->sesid = sesid;
669		__entry->create_options = create_options;
670		__entry->desired_access = desired_access;
671	),
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)
675)
676
677#define DEFINE_SMB3_OPEN_ENTER_EVENT(name)        \
678DEFINE_EVENT(smb3_open_enter_class, smb3_##name,  \
679	TP_PROTO(unsigned int xid,		\
680		__u32	tid,			\
681		__u64	sesid,			\
682		int	create_options,		\
683		int	desired_access),	\
684	TP_ARGS(xid, tid, sesid, create_options, desired_access))
685
686DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter);
687DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter);
688
689DECLARE_EVENT_CLASS(smb3_open_err_class,
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	TP_STRUCT__entry(
698		__field(unsigned int, xid)
699		__field(__u32, tid)
700		__field(__u64, sesid)
701		__field(int,   create_options)
702		__field(int, desired_access)
703		__field(int, rc)
704	),
705	TP_fast_assign(
706		__entry->xid = xid;
707		__entry->tid = tid;
708		__entry->sesid = sesid;
709		__entry->create_options = create_options;
710		__entry->desired_access = desired_access;
711		__entry->rc = rc;
712	),
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)
716)
717
718#define DEFINE_SMB3_OPEN_ERR_EVENT(name)          \
719DEFINE_EVENT(smb3_open_err_class, smb3_##name,    \
720	TP_PROTO(unsigned int xid,		\
721		__u32	tid,			\
722		__u64	sesid,			\
723		int	create_options,		\
724		int	desired_access,		\
725		int	rc),			\
726	TP_ARGS(xid, tid, sesid, create_options, desired_access, rc))
727
728DEFINE_SMB3_OPEN_ERR_EVENT(open_err);
729DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err);
730
731DECLARE_EVENT_CLASS(smb3_open_done_class,
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	TP_STRUCT__entry(
740		__field(unsigned int, xid)
741		__field(__u64, fid)
742		__field(__u32, tid)
743		__field(__u64, sesid)
744		__field(int, create_options)
745		__field(int, desired_access)
746	),
747	TP_fast_assign(
748		__entry->xid = xid;
749		__entry->fid = fid;
750		__entry->tid = tid;
751		__entry->sesid = sesid;
752		__entry->create_options = create_options;
753		__entry->desired_access = desired_access;
754	),
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)
758)
759
760#define DEFINE_SMB3_OPEN_DONE_EVENT(name)        \
761DEFINE_EVENT(smb3_open_done_class, smb3_##name,  \
762	TP_PROTO(unsigned int xid,		\
763		__u64	fid,			\
764		__u32	tid,			\
765		__u64	sesid,			\
766		int	create_options,		\
767		int	desired_access),	\
768	TP_ARGS(xid, fid, tid, sesid, create_options, desired_access))
769
770DEFINE_SMB3_OPEN_DONE_EVENT(open_done);
771DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done);
772
773
774DECLARE_EVENT_CLASS(smb3_lease_done_class,
775	TP_PROTO(__u32	lease_state,
776		__u32	tid,
777		__u64	sesid,
778		__u64	lease_key_low,
779		__u64	lease_key_high),
780	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high),
781	TP_STRUCT__entry(
782		__field(__u32, lease_state)
783		__field(__u32, tid)
784		__field(__u64, sesid)
785		__field(__u64, lease_key_low)
786		__field(__u64, lease_key_high)
787	),
788	TP_fast_assign(
789		__entry->lease_state = lease_state;
790		__entry->tid = tid;
791		__entry->sesid = sesid;
792		__entry->lease_key_low = lease_key_low;
793		__entry->lease_key_high = lease_key_high;
794	),
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)
798)
799
800#define DEFINE_SMB3_LEASE_DONE_EVENT(name)        \
801DEFINE_EVENT(smb3_lease_done_class, smb3_##name,  \
802	TP_PROTO(__u32	lease_state,		\
803		__u32	tid,			\
804		__u64	sesid,			\
805		__u64	lease_key_low,		\
806		__u64	lease_key_high),	\
807	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high))
808
809DEFINE_SMB3_LEASE_DONE_EVENT(lease_done);
810
811DECLARE_EVENT_CLASS(smb3_lease_err_class,
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	TP_STRUCT__entry(
820		__field(__u32, lease_state)
821		__field(__u32, tid)
822		__field(__u64, sesid)
823		__field(__u64, lease_key_low)
824		__field(__u64, lease_key_high)
825		__field(int, rc)
826	),
827	TP_fast_assign(
828		__entry->lease_state = lease_state;
829		__entry->tid = tid;
830		__entry->sesid = sesid;
831		__entry->lease_key_low = lease_key_low;
832		__entry->lease_key_high = lease_key_high;
833		__entry->rc = rc;
834	),
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)
838)
839
840#define DEFINE_SMB3_LEASE_ERR_EVENT(name)        \
841DEFINE_EVENT(smb3_lease_err_class, smb3_##name,  \
842	TP_PROTO(__u32	lease_state,		\
843		__u32	tid,			\
844		__u64	sesid,			\
845		__u64	lease_key_low,		\
846		__u64	lease_key_high,		\
847		int	rc),			\
848	TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc))
849
850DEFINE_SMB3_LEASE_ERR_EVENT(lease_err);
851
852DECLARE_EVENT_CLASS(smb3_reconnect_class,
853	TP_PROTO(__u64	currmid,
854		char *hostname),
855	TP_ARGS(currmid, hostname),
856	TP_STRUCT__entry(
857		__field(__u64, currmid)
858		__field(char *, hostname)
859	),
860	TP_fast_assign(
861		__entry->currmid = currmid;
862		__entry->hostname = hostname;
863	),
864	TP_printk("server=%s current_mid=0x%llx",
865		__entry->hostname,
866		__entry->currmid)
867)
868
869#define DEFINE_SMB3_RECONNECT_EVENT(name)        \
870DEFINE_EVENT(smb3_reconnect_class, smb3_##name,  \
871	TP_PROTO(__u64	currmid,		\
872		char *hostname),		\
873	TP_ARGS(currmid, hostname))
874
875DEFINE_SMB3_RECONNECT_EVENT(reconnect);
876DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect);
877
878DECLARE_EVENT_CLASS(smb3_credit_class,
879	TP_PROTO(__u64	currmid,
880		char *hostname,
881		int credits),
882	TP_ARGS(currmid, hostname, credits),
883	TP_STRUCT__entry(
884		__field(__u64, currmid)
885		__field(char *, hostname)
886		__field(int, credits)
887	),
888	TP_fast_assign(
889		__entry->currmid = currmid;
890		__entry->hostname = hostname;
891		__entry->credits = credits;
892	),
893	TP_printk("server=%s current_mid=0x%llx credits=%d",
894		__entry->hostname,
895		__entry->currmid,
896		__entry->credits)
897)
898
899#define DEFINE_SMB3_CREDIT_EVENT(name)        \
900DEFINE_EVENT(smb3_credit_class, smb3_##name,  \
901	TP_PROTO(__u64	currmid,		\
902		char *hostname,			\
903		int  credits),			\
904	TP_ARGS(currmid, hostname, credits))
905
906DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits);
907DEFINE_SMB3_CREDIT_EVENT(credit_timeout);
908
909#endif /* _CIFS_TRACE_H */
910
911#undef TRACE_INCLUDE_PATH
912#define TRACE_INCLUDE_PATH .
913#define TRACE_INCLUDE_FILE trace
914#include <trace/define_trace.h>