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