]>
Commit | Line | Data |
---|---|---|
eccb4422 SF |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* | |
3 | * Copyright (C) 2018, Microsoft Corporation. | |
4 | * | |
5 | * Author(s): Steve French <[email protected]> | |
afc23feb DH |
6 | * |
7 | * Please use this 3-part article as a reference for writing new tracepoints: | |
8 | * https://lwn.net/Articles/379903/ | |
eccb4422 SF |
9 | */ |
10 | #undef TRACE_SYSTEM | |
11 | #define TRACE_SYSTEM cifs | |
12 | ||
13 | #if !defined(_CIFS_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) | |
14 | #define _CIFS_TRACE_H | |
15 | ||
16 | #include <linux/tracepoint.h> | |
d7171cd1 SF |
17 | #include <linux/net.h> |
18 | #include <linux/inet.h> | |
eccb4422 | 19 | |
eb068818 | 20 | /* |
afc23feb DH |
21 | * Specify enums for tracing information. |
22 | */ | |
519be989 DH |
23 | #define smb3_rw_credits_traces \ |
24 | EM(cifs_trace_rw_credits_call_readv_adjust, "rd-call-adj") \ | |
25 | EM(cifs_trace_rw_credits_call_writev_adjust, "wr-call-adj") \ | |
26 | EM(cifs_trace_rw_credits_free_subreq, "free-subreq") \ | |
27 | EM(cifs_trace_rw_credits_issue_read_adjust, "rd-issu-adj") \ | |
28 | EM(cifs_trace_rw_credits_issue_write_adjust, "wr-issu-adj") \ | |
29 | EM(cifs_trace_rw_credits_no_adjust_up, "no-adj-up ") \ | |
30 | EM(cifs_trace_rw_credits_old_session, "old-session") \ | |
31 | EM(cifs_trace_rw_credits_read_response_add, "rd-resp-add") \ | |
32 | EM(cifs_trace_rw_credits_read_response_clear, "rd-resp-clr") \ | |
33 | EM(cifs_trace_rw_credits_read_submit, "rd-submit ") \ | |
34 | EM(cifs_trace_rw_credits_write_prepare, "wr-prepare ") \ | |
35 | EM(cifs_trace_rw_credits_write_response_add, "wr-resp-add") \ | |
36 | EM(cifs_trace_rw_credits_write_response_clear, "wr-resp-clr") \ | |
37 | E_(cifs_trace_rw_credits_zero_in_flight, "ZERO-IN-FLT") | |
38 | ||
afc23feb DH |
39 | #define smb3_tcon_ref_traces \ |
40 | EM(netfs_trace_tcon_ref_dec_dfs_refer, "DEC DfsRef") \ | |
41 | EM(netfs_trace_tcon_ref_free, "FRE ") \ | |
42 | EM(netfs_trace_tcon_ref_free_fail, "FRE Fail ") \ | |
43 | EM(netfs_trace_tcon_ref_free_ipc, "FRE Ipc ") \ | |
44 | EM(netfs_trace_tcon_ref_free_ipc_fail, "FRE Ipc-F ") \ | |
45 | EM(netfs_trace_tcon_ref_free_reconnect_server, "FRE Reconn") \ | |
46 | EM(netfs_trace_tcon_ref_get_cancelled_close, "GET Cn-Cls") \ | |
47 | EM(netfs_trace_tcon_ref_get_dfs_refer, "GET DfsRef") \ | |
48 | EM(netfs_trace_tcon_ref_get_find, "GET Find ") \ | |
49 | EM(netfs_trace_tcon_ref_get_find_sess_tcon, "GET FndSes") \ | |
50 | EM(netfs_trace_tcon_ref_get_reconnect_server, "GET Reconn") \ | |
51 | EM(netfs_trace_tcon_ref_new, "NEW ") \ | |
52 | EM(netfs_trace_tcon_ref_new_ipc, "NEW Ipc ") \ | |
53 | EM(netfs_trace_tcon_ref_new_reconnect_server, "NEW Reconn") \ | |
54 | EM(netfs_trace_tcon_ref_put_cancelled_close, "PUT Cn-Cls") \ | |
55 | EM(netfs_trace_tcon_ref_put_cancelled_close_fid, "PUT Cn-Fid") \ | |
56 | EM(netfs_trace_tcon_ref_put_cancelled_mid, "PUT Cn-Mid") \ | |
57 | EM(netfs_trace_tcon_ref_put_mnt_ctx, "PUT MntCtx") \ | |
58 | EM(netfs_trace_tcon_ref_put_reconnect_server, "PUT Reconn") \ | |
59 | EM(netfs_trace_tcon_ref_put_tlink, "PUT Tlink ") \ | |
60 | EM(netfs_trace_tcon_ref_see_cancelled_close, "SEE Cn-Cls") \ | |
61 | EM(netfs_trace_tcon_ref_see_fscache_collision, "SEE FV-CO!") \ | |
62 | EM(netfs_trace_tcon_ref_see_fscache_okay, "SEE FV-Ok ") \ | |
63 | EM(netfs_trace_tcon_ref_see_fscache_relinq, "SEE FV-Rlq") \ | |
64 | E_(netfs_trace_tcon_ref_see_umount, "SEE Umount") | |
65 | ||
66 | #undef EM | |
67 | #undef E_ | |
68 | ||
69 | /* | |
70 | * Define those tracing enums. | |
71 | */ | |
72 | #ifndef __SMB3_DECLARE_TRACE_ENUMS_ONCE_ONLY | |
73 | #define __SMB3_DECLARE_TRACE_ENUMS_ONCE_ONLY | |
74 | ||
75 | #define EM(a, b) a, | |
76 | #define E_(a, b) a | |
77 | ||
519be989 DH |
78 | enum smb3_rw_credits_trace { smb3_rw_credits_traces } __mode(byte); |
79 | enum smb3_tcon_ref_trace { smb3_tcon_ref_traces } __mode(byte); | |
afc23feb DH |
80 | |
81 | #undef EM | |
82 | #undef E_ | |
83 | #endif | |
84 | ||
85 | /* | |
86 | * Export enum symbols via userspace. | |
87 | */ | |
88 | #define EM(a, b) TRACE_DEFINE_ENUM(a); | |
89 | #define E_(a, b) TRACE_DEFINE_ENUM(a); | |
90 | ||
519be989 | 91 | smb3_rw_credits_traces; |
afc23feb DH |
92 | smb3_tcon_ref_traces; |
93 | ||
94 | #undef EM | |
95 | #undef E_ | |
96 | ||
97 | /* | |
98 | * Now redefine the EM() and E_() macros to map the enums to the strings that | |
99 | * will be printed in the output. | |
eb068818 | 100 | */ |
afc23feb DH |
101 | #define EM(a, b) { a, b }, |
102 | #define E_(a, b) { a, b } | |
eb068818 | 103 | |
eccb4422 SF |
104 | /* For logging errors in read or write */ |
105 | DECLARE_EVENT_CLASS(smb3_rw_err_class, | |
3ee1a1fc DH |
106 | TP_PROTO(unsigned int rreq_debug_id, |
107 | unsigned int rreq_debug_index, | |
108 | unsigned int xid, | |
109 | __u64 fid, | |
110 | __u32 tid, | |
111 | __u64 sesid, | |
112 | __u64 offset, | |
113 | __u32 len, | |
114 | int rc), | |
115 | TP_ARGS(rreq_debug_id, rreq_debug_index, | |
116 | xid, fid, tid, sesid, offset, len, rc), | |
117 | TP_STRUCT__entry( | |
118 | __field(unsigned int, rreq_debug_id) | |
119 | __field(unsigned int, rreq_debug_index) | |
120 | __field(unsigned int, xid) | |
121 | __field(__u64, fid) | |
122 | __field(__u32, tid) | |
123 | __field(__u64, sesid) | |
124 | __field(__u64, offset) | |
125 | __field(__u32, len) | |
126 | __field(int, rc) | |
127 | ), | |
128 | TP_fast_assign( | |
129 | __entry->rreq_debug_id = rreq_debug_id; | |
130 | __entry->rreq_debug_index = rreq_debug_index; | |
131 | __entry->xid = xid; | |
132 | __entry->fid = fid; | |
133 | __entry->tid = tid; | |
134 | __entry->sesid = sesid; | |
135 | __entry->offset = offset; | |
136 | __entry->len = len; | |
137 | __entry->rc = rc; | |
138 | ), | |
139 | TP_printk("\tR=%08x[%x] xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d", | |
140 | __entry->rreq_debug_id, __entry->rreq_debug_index, | |
141 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
142 | __entry->offset, __entry->len, __entry->rc) | |
143 | ) | |
144 | ||
145 | #define DEFINE_SMB3_RW_ERR_EVENT(name) \ | |
146 | DEFINE_EVENT(smb3_rw_err_class, smb3_##name, \ | |
147 | TP_PROTO(unsigned int rreq_debug_id, \ | |
148 | unsigned int rreq_debug_index, \ | |
149 | unsigned int xid, \ | |
150 | __u64 fid, \ | |
151 | __u32 tid, \ | |
152 | __u64 sesid, \ | |
153 | __u64 offset, \ | |
154 | __u32 len, \ | |
155 | int rc), \ | |
156 | TP_ARGS(rreq_debug_id, rreq_debug_index, xid, fid, tid, sesid, offset, len, rc)) | |
157 | ||
158 | DEFINE_SMB3_RW_ERR_EVENT(read_err); | |
159 | ||
160 | /* For logging errors in other file I/O ops */ | |
161 | DECLARE_EVENT_CLASS(smb3_other_err_class, | |
eccb4422 SF |
162 | TP_PROTO(unsigned int xid, |
163 | __u64 fid, | |
164 | __u32 tid, | |
165 | __u64 sesid, | |
166 | __u64 offset, | |
167 | __u32 len, | |
168 | int rc), | |
169 | TP_ARGS(xid, fid, tid, sesid, offset, len, rc), | |
170 | TP_STRUCT__entry( | |
171 | __field(unsigned int, xid) | |
172 | __field(__u64, fid) | |
173 | __field(__u32, tid) | |
174 | __field(__u64, sesid) | |
175 | __field(__u64, offset) | |
176 | __field(__u32, len) | |
177 | __field(int, rc) | |
178 | ), | |
179 | TP_fast_assign( | |
180 | __entry->xid = xid; | |
181 | __entry->fid = fid; | |
182 | __entry->tid = tid; | |
183 | __entry->sesid = sesid; | |
184 | __entry->offset = offset; | |
185 | __entry->len = len; | |
186 | __entry->rc = rc; | |
187 | ), | |
d683bcd3 SF |
188 | TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x rc=%d", |
189 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
190 | __entry->offset, __entry->len, __entry->rc) |
191 | ) | |
192 | ||
3ee1a1fc DH |
193 | #define DEFINE_SMB3_OTHER_ERR_EVENT(name) \ |
194 | DEFINE_EVENT(smb3_other_err_class, smb3_##name, \ | |
eccb4422 SF |
195 | TP_PROTO(unsigned int xid, \ |
196 | __u64 fid, \ | |
197 | __u32 tid, \ | |
198 | __u64 sesid, \ | |
199 | __u64 offset, \ | |
200 | __u32 len, \ | |
201 | int rc), \ | |
202 | TP_ARGS(xid, fid, tid, sesid, offset, len, rc)) | |
203 | ||
3ee1a1fc DH |
204 | DEFINE_SMB3_OTHER_ERR_EVENT(write_err); |
205 | DEFINE_SMB3_OTHER_ERR_EVENT(query_dir_err); | |
206 | DEFINE_SMB3_OTHER_ERR_EVENT(zero_err); | |
207 | DEFINE_SMB3_OTHER_ERR_EVENT(falloc_err); | |
eccb4422 SF |
208 | |
209 | ||
210 | /* For logging successful read or write */ | |
211 | DECLARE_EVENT_CLASS(smb3_rw_done_class, | |
3ee1a1fc DH |
212 | TP_PROTO(unsigned int rreq_debug_id, |
213 | unsigned int rreq_debug_index, | |
214 | unsigned int xid, | |
215 | __u64 fid, | |
216 | __u32 tid, | |
217 | __u64 sesid, | |
218 | __u64 offset, | |
219 | __u32 len), | |
220 | TP_ARGS(rreq_debug_id, rreq_debug_index, | |
221 | xid, fid, tid, sesid, offset, len), | |
222 | TP_STRUCT__entry( | |
223 | __field(unsigned int, rreq_debug_id) | |
224 | __field(unsigned int, rreq_debug_index) | |
225 | __field(unsigned int, xid) | |
226 | __field(__u64, fid) | |
227 | __field(__u32, tid) | |
228 | __field(__u64, sesid) | |
229 | __field(__u64, offset) | |
230 | __field(__u32, len) | |
231 | ), | |
232 | TP_fast_assign( | |
233 | __entry->rreq_debug_id = rreq_debug_id; | |
234 | __entry->rreq_debug_index = rreq_debug_index; | |
235 | __entry->xid = xid; | |
236 | __entry->fid = fid; | |
237 | __entry->tid = tid; | |
238 | __entry->sesid = sesid; | |
239 | __entry->offset = offset; | |
240 | __entry->len = len; | |
241 | ), | |
242 | TP_printk("R=%08x[%x] xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x", | |
243 | __entry->rreq_debug_id, __entry->rreq_debug_index, | |
244 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
245 | __entry->offset, __entry->len) | |
246 | ) | |
247 | ||
248 | #define DEFINE_SMB3_RW_DONE_EVENT(name) \ | |
249 | DEFINE_EVENT(smb3_rw_done_class, smb3_##name, \ | |
250 | TP_PROTO(unsigned int rreq_debug_id, \ | |
251 | unsigned int rreq_debug_index, \ | |
252 | unsigned int xid, \ | |
253 | __u64 fid, \ | |
254 | __u32 tid, \ | |
255 | __u64 sesid, \ | |
256 | __u64 offset, \ | |
257 | __u32 len), \ | |
258 | TP_ARGS(rreq_debug_id, rreq_debug_index, xid, fid, tid, sesid, offset, len)) | |
259 | ||
260 | DEFINE_SMB3_RW_DONE_EVENT(read_enter); | |
261 | DEFINE_SMB3_RW_DONE_EVENT(read_done); | |
262 | ||
263 | /* For logging successful other op */ | |
264 | DECLARE_EVENT_CLASS(smb3_other_done_class, | |
eccb4422 SF |
265 | TP_PROTO(unsigned int xid, |
266 | __u64 fid, | |
267 | __u32 tid, | |
268 | __u64 sesid, | |
269 | __u64 offset, | |
270 | __u32 len), | |
271 | TP_ARGS(xid, fid, tid, sesid, offset, len), | |
272 | TP_STRUCT__entry( | |
273 | __field(unsigned int, xid) | |
274 | __field(__u64, fid) | |
275 | __field(__u32, tid) | |
276 | __field(__u64, sesid) | |
277 | __field(__u64, offset) | |
278 | __field(__u32, len) | |
279 | ), | |
280 | TP_fast_assign( | |
281 | __entry->xid = xid; | |
282 | __entry->fid = fid; | |
283 | __entry->tid = tid; | |
284 | __entry->sesid = sesid; | |
285 | __entry->offset = offset; | |
286 | __entry->len = len; | |
287 | ), | |
d683bcd3 SF |
288 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx len=0x%x", |
289 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
290 | __entry->offset, __entry->len) |
291 | ) | |
292 | ||
3ee1a1fc DH |
293 | #define DEFINE_SMB3_OTHER_DONE_EVENT(name) \ |
294 | DEFINE_EVENT(smb3_other_done_class, smb3_##name, \ | |
eccb4422 SF |
295 | TP_PROTO(unsigned int xid, \ |
296 | __u64 fid, \ | |
297 | __u32 tid, \ | |
298 | __u64 sesid, \ | |
299 | __u64 offset, \ | |
300 | __u32 len), \ | |
301 | TP_ARGS(xid, fid, tid, sesid, offset, len)) | |
302 | ||
3ee1a1fc DH |
303 | DEFINE_SMB3_OTHER_DONE_EVENT(write_enter); |
304 | DEFINE_SMB3_OTHER_DONE_EVENT(query_dir_enter); | |
305 | DEFINE_SMB3_OTHER_DONE_EVENT(zero_enter); | |
306 | DEFINE_SMB3_OTHER_DONE_EVENT(falloc_enter); | |
307 | DEFINE_SMB3_OTHER_DONE_EVENT(write_done); | |
308 | DEFINE_SMB3_OTHER_DONE_EVENT(query_dir_done); | |
309 | DEFINE_SMB3_OTHER_DONE_EVENT(zero_done); | |
310 | DEFINE_SMB3_OTHER_DONE_EVENT(falloc_done); | |
eccb4422 | 311 | |
7c05eae8 SF |
312 | /* For logging successful set EOF (truncate) */ |
313 | DECLARE_EVENT_CLASS(smb3_eof_class, | |
314 | TP_PROTO(unsigned int xid, | |
315 | __u64 fid, | |
316 | __u32 tid, | |
317 | __u64 sesid, | |
318 | __u64 offset), | |
319 | TP_ARGS(xid, fid, tid, sesid, offset), | |
320 | TP_STRUCT__entry( | |
321 | __field(unsigned int, xid) | |
322 | __field(__u64, fid) | |
323 | __field(__u32, tid) | |
324 | __field(__u64, sesid) | |
325 | __field(__u64, offset) | |
326 | ), | |
327 | TP_fast_assign( | |
328 | __entry->xid = xid; | |
329 | __entry->fid = fid; | |
330 | __entry->tid = tid; | |
331 | __entry->sesid = sesid; | |
332 | __entry->offset = offset; | |
333 | ), | |
334 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx offset=0x%llx", | |
335 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
336 | __entry->offset) | |
337 | ) | |
338 | ||
339 | #define DEFINE_SMB3_EOF_EVENT(name) \ | |
340 | DEFINE_EVENT(smb3_eof_class, smb3_##name, \ | |
341 | TP_PROTO(unsigned int xid, \ | |
342 | __u64 fid, \ | |
343 | __u32 tid, \ | |
344 | __u64 sesid, \ | |
345 | __u64 offset), \ | |
346 | TP_ARGS(xid, fid, tid, sesid, offset)) | |
347 | ||
348 | DEFINE_SMB3_EOF_EVENT(set_eof); | |
349 | ||
eccb4422 SF |
350 | /* |
351 | * For handle based calls other than read and write, and get/set info | |
352 | */ | |
f90f9797 SF |
353 | DECLARE_EVENT_CLASS(smb3_fd_class, |
354 | TP_PROTO(unsigned int xid, | |
355 | __u64 fid, | |
356 | __u32 tid, | |
357 | __u64 sesid), | |
358 | TP_ARGS(xid, fid, tid, sesid), | |
359 | TP_STRUCT__entry( | |
360 | __field(unsigned int, xid) | |
361 | __field(__u64, fid) | |
362 | __field(__u32, tid) | |
363 | __field(__u64, sesid) | |
364 | ), | |
365 | TP_fast_assign( | |
366 | __entry->xid = xid; | |
367 | __entry->fid = fid; | |
368 | __entry->tid = tid; | |
369 | __entry->sesid = sesid; | |
370 | ), | |
371 | TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx", | |
372 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid) | |
373 | ) | |
374 | ||
375 | #define DEFINE_SMB3_FD_EVENT(name) \ | |
376 | DEFINE_EVENT(smb3_fd_class, smb3_##name, \ | |
377 | TP_PROTO(unsigned int xid, \ | |
378 | __u64 fid, \ | |
379 | __u32 tid, \ | |
380 | __u64 sesid), \ | |
381 | TP_ARGS(xid, fid, tid, sesid)) | |
382 | ||
383 | DEFINE_SMB3_FD_EVENT(flush_enter); | |
384 | DEFINE_SMB3_FD_EVENT(flush_done); | |
385 | DEFINE_SMB3_FD_EVENT(close_enter); | |
386 | DEFINE_SMB3_FD_EVENT(close_done); | |
35a2b533 | 387 | DEFINE_SMB3_FD_EVENT(oplock_not_found); |
f90f9797 | 388 | |
eccb4422 SF |
389 | DECLARE_EVENT_CLASS(smb3_fd_err_class, |
390 | TP_PROTO(unsigned int xid, | |
391 | __u64 fid, | |
392 | __u32 tid, | |
393 | __u64 sesid, | |
394 | int rc), | |
395 | TP_ARGS(xid, fid, tid, sesid, rc), | |
396 | TP_STRUCT__entry( | |
397 | __field(unsigned int, xid) | |
398 | __field(__u64, fid) | |
399 | __field(__u32, tid) | |
400 | __field(__u64, sesid) | |
401 | __field(int, rc) | |
402 | ), | |
403 | TP_fast_assign( | |
404 | __entry->xid = xid; | |
405 | __entry->fid = fid; | |
406 | __entry->tid = tid; | |
407 | __entry->sesid = sesid; | |
408 | __entry->rc = rc; | |
409 | ), | |
d683bcd3 SF |
410 | TP_printk("\txid=%u sid=0x%llx tid=0x%x fid=0x%llx rc=%d", |
411 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
412 | __entry->rc) |
413 | ) | |
414 | ||
415 | #define DEFINE_SMB3_FD_ERR_EVENT(name) \ | |
416 | DEFINE_EVENT(smb3_fd_err_class, smb3_##name, \ | |
417 | TP_PROTO(unsigned int xid, \ | |
418 | __u64 fid, \ | |
419 | __u32 tid, \ | |
420 | __u64 sesid, \ | |
421 | int rc), \ | |
422 | TP_ARGS(xid, fid, tid, sesid, rc)) | |
423 | ||
424 | DEFINE_SMB3_FD_ERR_EVENT(flush_err); | |
425 | DEFINE_SMB3_FD_ERR_EVENT(lock_err); | |
426 | DEFINE_SMB3_FD_ERR_EVENT(close_err); | |
427 | ||
428 | /* | |
429 | * For handle based query/set info calls | |
430 | */ | |
d42043a6 SF |
431 | DECLARE_EVENT_CLASS(smb3_inf_enter_class, |
432 | TP_PROTO(unsigned int xid, | |
433 | __u64 fid, | |
434 | __u32 tid, | |
435 | __u64 sesid, | |
436 | __u8 infclass, | |
437 | __u32 type), | |
438 | TP_ARGS(xid, fid, tid, sesid, infclass, type), | |
439 | TP_STRUCT__entry( | |
440 | __field(unsigned int, xid) | |
441 | __field(__u64, fid) | |
442 | __field(__u32, tid) | |
443 | __field(__u64, sesid) | |
444 | __field(__u8, infclass) | |
445 | __field(__u32, type) | |
446 | ), | |
447 | TP_fast_assign( | |
448 | __entry->xid = xid; | |
449 | __entry->fid = fid; | |
450 | __entry->tid = tid; | |
451 | __entry->sesid = sesid; | |
452 | __entry->infclass = infclass; | |
453 | __entry->type = type; | |
454 | ), | |
455 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x", | |
456 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
457 | __entry->infclass, __entry->type) | |
458 | ) | |
459 | ||
460 | #define DEFINE_SMB3_INF_ENTER_EVENT(name) \ | |
461 | DEFINE_EVENT(smb3_inf_enter_class, smb3_##name, \ | |
462 | TP_PROTO(unsigned int xid, \ | |
463 | __u64 fid, \ | |
464 | __u32 tid, \ | |
465 | __u64 sesid, \ | |
466 | __u8 infclass, \ | |
467 | __u32 type), \ | |
468 | TP_ARGS(xid, fid, tid, sesid, infclass, type)) | |
469 | ||
470 | DEFINE_SMB3_INF_ENTER_EVENT(query_info_enter); | |
471 | DEFINE_SMB3_INF_ENTER_EVENT(query_info_done); | |
c3498185 SF |
472 | DEFINE_SMB3_INF_ENTER_EVENT(notify_enter); |
473 | DEFINE_SMB3_INF_ENTER_EVENT(notify_done); | |
d42043a6 | 474 | |
eccb4422 SF |
475 | DECLARE_EVENT_CLASS(smb3_inf_err_class, |
476 | TP_PROTO(unsigned int xid, | |
477 | __u64 fid, | |
478 | __u32 tid, | |
479 | __u64 sesid, | |
480 | __u8 infclass, | |
481 | __u32 type, | |
482 | int rc), | |
483 | TP_ARGS(xid, fid, tid, sesid, infclass, type, rc), | |
484 | TP_STRUCT__entry( | |
485 | __field(unsigned int, xid) | |
486 | __field(__u64, fid) | |
487 | __field(__u32, tid) | |
488 | __field(__u64, sesid) | |
489 | __field(__u8, infclass) | |
490 | __field(__u32, type) | |
491 | __field(int, rc) | |
492 | ), | |
493 | TP_fast_assign( | |
494 | __entry->xid = xid; | |
495 | __entry->fid = fid; | |
496 | __entry->tid = tid; | |
497 | __entry->sesid = sesid; | |
498 | __entry->infclass = infclass; | |
499 | __entry->type = type; | |
500 | __entry->rc = rc; | |
501 | ), | |
d683bcd3 SF |
502 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx class=%u type=0x%x rc=%d", |
503 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
eccb4422 SF |
504 | __entry->infclass, __entry->type, __entry->rc) |
505 | ) | |
506 | ||
507 | #define DEFINE_SMB3_INF_ERR_EVENT(name) \ | |
508 | DEFINE_EVENT(smb3_inf_err_class, smb3_##name, \ | |
509 | TP_PROTO(unsigned int xid, \ | |
510 | __u64 fid, \ | |
511 | __u32 tid, \ | |
512 | __u64 sesid, \ | |
513 | __u8 infclass, \ | |
514 | __u32 type, \ | |
515 | int rc), \ | |
516 | TP_ARGS(xid, fid, tid, sesid, infclass, type, rc)) | |
517 | ||
518 | DEFINE_SMB3_INF_ERR_EVENT(query_info_err); | |
519 | DEFINE_SMB3_INF_ERR_EVENT(set_info_err); | |
c3498185 | 520 | DEFINE_SMB3_INF_ERR_EVENT(notify_err); |
eccb4422 SF |
521 | DEFINE_SMB3_INF_ERR_EVENT(fsctl_err); |
522 | ||
8191576a SF |
523 | DECLARE_EVENT_CLASS(smb3_inf_compound_enter_class, |
524 | TP_PROTO(unsigned int xid, | |
525 | __u32 tid, | |
526 | __u64 sesid, | |
527 | const char *full_path), | |
528 | TP_ARGS(xid, tid, sesid, full_path), | |
529 | TP_STRUCT__entry( | |
530 | __field(unsigned int, xid) | |
531 | __field(__u32, tid) | |
532 | __field(__u64, sesid) | |
533 | __string(path, full_path) | |
534 | ), | |
535 | TP_fast_assign( | |
536 | __entry->xid = xid; | |
537 | __entry->tid = tid; | |
538 | __entry->sesid = sesid; | |
2c92ca84 | 539 | __assign_str(path); |
8191576a SF |
540 | ), |
541 | TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s", | |
542 | __entry->xid, __entry->sesid, __entry->tid, | |
543 | __get_str(path)) | |
544 | ) | |
545 | ||
546 | #define DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(name) \ | |
547 | DEFINE_EVENT(smb3_inf_compound_enter_class, smb3_##name, \ | |
548 | TP_PROTO(unsigned int xid, \ | |
549 | __u32 tid, \ | |
550 | __u64 sesid, \ | |
551 | const char *full_path), \ | |
552 | TP_ARGS(xid, tid, sesid, full_path)) | |
553 | ||
554 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(query_info_compound_enter); | |
e4bd7c4a | 555 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(posix_query_info_compound_enter); |
8191576a SF |
556 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(hardlink_enter); |
557 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rename_enter); | |
558 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(rmdir_enter); | |
559 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_eof_enter); | |
560 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_info_compound_enter); | |
102466f3 | 561 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(set_reparse_compound_enter); |
67ec9949 | 562 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(get_reparse_compound_enter); |
8191576a SF |
563 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(delete_enter); |
564 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mkdir_enter); | |
68e14569 | 565 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(tdis_enter); |
e9e9fbeb | 566 | DEFINE_SMB3_INF_COMPOUND_ENTER_EVENT(mknod_enter); |
8191576a | 567 | |
8191576a SF |
568 | DECLARE_EVENT_CLASS(smb3_inf_compound_done_class, |
569 | TP_PROTO(unsigned int xid, | |
570 | __u32 tid, | |
571 | __u64 sesid), | |
572 | TP_ARGS(xid, tid, sesid), | |
573 | TP_STRUCT__entry( | |
574 | __field(unsigned int, xid) | |
575 | __field(__u32, tid) | |
576 | __field(__u64, sesid) | |
577 | ), | |
578 | TP_fast_assign( | |
579 | __entry->xid = xid; | |
580 | __entry->tid = tid; | |
581 | __entry->sesid = sesid; | |
582 | ), | |
583 | TP_printk("xid=%u sid=0x%llx tid=0x%x", | |
584 | __entry->xid, __entry->sesid, __entry->tid) | |
585 | ) | |
586 | ||
587 | #define DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(name) \ | |
588 | DEFINE_EVENT(smb3_inf_compound_done_class, smb3_##name, \ | |
589 | TP_PROTO(unsigned int xid, \ | |
590 | __u32 tid, \ | |
591 | __u64 sesid), \ | |
592 | TP_ARGS(xid, tid, sesid)) | |
593 | ||
594 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_info_compound_done); | |
e4bd7c4a | 595 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(posix_query_info_compound_done); |
8191576a SF |
596 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(hardlink_done); |
597 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rename_done); | |
598 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(rmdir_done); | |
599 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_eof_done); | |
600 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_info_compound_done); | |
102466f3 | 601 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(set_reparse_compound_done); |
67ec9949 | 602 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(get_reparse_compound_done); |
ea41367b | 603 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(query_wsl_ea_compound_done); |
8191576a SF |
604 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(delete_done); |
605 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mkdir_done); | |
68e14569 | 606 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(tdis_done); |
e9e9fbeb | 607 | DEFINE_SMB3_INF_COMPOUND_DONE_EVENT(mknod_done); |
8191576a SF |
608 | |
609 | DECLARE_EVENT_CLASS(smb3_inf_compound_err_class, | |
610 | TP_PROTO(unsigned int xid, | |
611 | __u32 tid, | |
612 | __u64 sesid, | |
613 | int rc), | |
614 | TP_ARGS(xid, tid, sesid, rc), | |
615 | TP_STRUCT__entry( | |
616 | __field(unsigned int, xid) | |
617 | __field(__u32, tid) | |
618 | __field(__u64, sesid) | |
619 | __field(int, rc) | |
620 | ), | |
621 | TP_fast_assign( | |
622 | __entry->xid = xid; | |
623 | __entry->tid = tid; | |
624 | __entry->sesid = sesid; | |
625 | __entry->rc = rc; | |
626 | ), | |
627 | TP_printk("xid=%u sid=0x%llx tid=0x%x rc=%d", | |
628 | __entry->xid, __entry->sesid, __entry->tid, | |
629 | __entry->rc) | |
630 | ) | |
631 | ||
632 | #define DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(name) \ | |
633 | DEFINE_EVENT(smb3_inf_compound_err_class, smb3_##name, \ | |
634 | TP_PROTO(unsigned int xid, \ | |
635 | __u32 tid, \ | |
636 | __u64 sesid, \ | |
637 | int rc), \ | |
638 | TP_ARGS(xid, tid, sesid, rc)) | |
639 | ||
640 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_info_compound_err); | |
e4bd7c4a | 641 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(posix_query_info_compound_err); |
8191576a SF |
642 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(hardlink_err); |
643 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rename_err); | |
644 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(rmdir_err); | |
645 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_eof_err); | |
646 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_info_compound_err); | |
102466f3 | 647 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(set_reparse_compound_err); |
67ec9949 | 648 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(get_reparse_compound_err); |
ea41367b | 649 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(query_wsl_ea_compound_err); |
8191576a SF |
650 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mkdir_err); |
651 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(delete_err); | |
68e14569 | 652 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(tdis_err); |
e9e9fbeb | 653 | DEFINE_SMB3_INF_COMPOUND_ERR_EVENT(mknod_err); |
8191576a | 654 | |
eccb4422 SF |
655 | /* |
656 | * For logging SMB3 Status code and Command for responses which return errors | |
657 | */ | |
658 | DECLARE_EVENT_CLASS(smb3_cmd_err_class, | |
d683bcd3 | 659 | TP_PROTO(__u32 tid, |
eccb4422 SF |
660 | __u64 sesid, |
661 | __u16 cmd, | |
662 | __u64 mid, | |
663 | __u32 status, | |
664 | int rc), | |
d683bcd3 | 665 | TP_ARGS(tid, sesid, cmd, mid, status, rc), |
eccb4422 | 666 | TP_STRUCT__entry( |
eccb4422 SF |
667 | __field(__u32, tid) |
668 | __field(__u64, sesid) | |
669 | __field(__u16, cmd) | |
670 | __field(__u64, mid) | |
671 | __field(__u32, status) | |
672 | __field(int, rc) | |
673 | ), | |
674 | TP_fast_assign( | |
eccb4422 SF |
675 | __entry->tid = tid; |
676 | __entry->sesid = sesid; | |
677 | __entry->cmd = cmd; | |
678 | __entry->mid = mid; | |
679 | __entry->status = status; | |
680 | __entry->rc = rc; | |
681 | ), | |
d683bcd3 SF |
682 | TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu status=0x%x rc=%d", |
683 | __entry->sesid, __entry->tid, __entry->cmd, __entry->mid, | |
684 | __entry->status, __entry->rc) | |
eccb4422 SF |
685 | ) |
686 | ||
687 | #define DEFINE_SMB3_CMD_ERR_EVENT(name) \ | |
688 | DEFINE_EVENT(smb3_cmd_err_class, smb3_##name, \ | |
d683bcd3 | 689 | TP_PROTO(__u32 tid, \ |
eccb4422 SF |
690 | __u64 sesid, \ |
691 | __u16 cmd, \ | |
692 | __u64 mid, \ | |
693 | __u32 status, \ | |
694 | int rc), \ | |
d683bcd3 | 695 | TP_ARGS(tid, sesid, cmd, mid, status, rc)) |
eccb4422 SF |
696 | |
697 | DEFINE_SMB3_CMD_ERR_EVENT(cmd_err); | |
698 | ||
699 | DECLARE_EVENT_CLASS(smb3_cmd_done_class, | |
d683bcd3 | 700 | TP_PROTO(__u32 tid, |
eccb4422 SF |
701 | __u64 sesid, |
702 | __u16 cmd, | |
703 | __u64 mid), | |
d683bcd3 | 704 | TP_ARGS(tid, sesid, cmd, mid), |
eccb4422 | 705 | TP_STRUCT__entry( |
eccb4422 SF |
706 | __field(__u32, tid) |
707 | __field(__u64, sesid) | |
708 | __field(__u16, cmd) | |
709 | __field(__u64, mid) | |
710 | ), | |
711 | TP_fast_assign( | |
eccb4422 SF |
712 | __entry->tid = tid; |
713 | __entry->sesid = sesid; | |
714 | __entry->cmd = cmd; | |
715 | __entry->mid = mid; | |
716 | ), | |
d683bcd3 SF |
717 | TP_printk("\tsid=0x%llx tid=0x%x cmd=%u mid=%llu", |
718 | __entry->sesid, __entry->tid, | |
eccb4422 SF |
719 | __entry->cmd, __entry->mid) |
720 | ) | |
721 | ||
722 | #define DEFINE_SMB3_CMD_DONE_EVENT(name) \ | |
723 | DEFINE_EVENT(smb3_cmd_done_class, smb3_##name, \ | |
d683bcd3 | 724 | TP_PROTO(__u32 tid, \ |
eccb4422 SF |
725 | __u64 sesid, \ |
726 | __u16 cmd, \ | |
727 | __u64 mid), \ | |
d683bcd3 | 728 | TP_ARGS(tid, sesid, cmd, mid)) |
eccb4422 | 729 | |
53a3e0d9 | 730 | DEFINE_SMB3_CMD_DONE_EVENT(cmd_enter); |
eccb4422 | 731 | DEFINE_SMB3_CMD_DONE_EVENT(cmd_done); |
e68a932b | 732 | DEFINE_SMB3_CMD_DONE_EVENT(ses_expired); |
eccb4422 | 733 | |
020eec5f SF |
734 | DECLARE_EVENT_CLASS(smb3_mid_class, |
735 | TP_PROTO(__u16 cmd, | |
736 | __u64 mid, | |
737 | __u32 pid, | |
738 | unsigned long when_sent, | |
739 | unsigned long when_received), | |
740 | TP_ARGS(cmd, mid, pid, when_sent, when_received), | |
741 | TP_STRUCT__entry( | |
742 | __field(__u16, cmd) | |
743 | __field(__u64, mid) | |
744 | __field(__u32, pid) | |
745 | __field(unsigned long, when_sent) | |
746 | __field(unsigned long, when_received) | |
747 | ), | |
748 | TP_fast_assign( | |
749 | __entry->cmd = cmd; | |
750 | __entry->mid = mid; | |
751 | __entry->pid = pid; | |
752 | __entry->when_sent = when_sent; | |
753 | __entry->when_received = when_received; | |
754 | ), | |
755 | TP_printk("\tcmd=%u mid=%llu pid=%u, when_sent=%lu when_rcv=%lu", | |
756 | __entry->cmd, __entry->mid, __entry->pid, __entry->when_sent, | |
757 | __entry->when_received) | |
758 | ) | |
759 | ||
760 | #define DEFINE_SMB3_MID_EVENT(name) \ | |
761 | DEFINE_EVENT(smb3_mid_class, smb3_##name, \ | |
762 | TP_PROTO(__u16 cmd, \ | |
763 | __u64 mid, \ | |
764 | __u32 pid, \ | |
765 | unsigned long when_sent, \ | |
766 | unsigned long when_received), \ | |
767 | TP_ARGS(cmd, mid, pid, when_sent, when_received)) | |
768 | ||
769 | DEFINE_SMB3_MID_EVENT(slow_rsp); | |
770 | ||
d683bcd3 SF |
771 | DECLARE_EVENT_CLASS(smb3_exit_err_class, |
772 | TP_PROTO(unsigned int xid, | |
773 | const char *func_name, | |
774 | int rc), | |
775 | TP_ARGS(xid, func_name, rc), | |
776 | TP_STRUCT__entry( | |
777 | __field(unsigned int, xid) | |
eb068818 | 778 | __string(func_name, func_name) |
d683bcd3 SF |
779 | __field(int, rc) |
780 | ), | |
781 | TP_fast_assign( | |
782 | __entry->xid = xid; | |
2c92ca84 | 783 | __assign_str(func_name); |
d683bcd3 SF |
784 | __entry->rc = rc; |
785 | ), | |
786 | TP_printk("\t%s: xid=%u rc=%d", | |
eb068818 | 787 | __get_str(func_name), __entry->xid, __entry->rc) |
d683bcd3 SF |
788 | ) |
789 | ||
790 | #define DEFINE_SMB3_EXIT_ERR_EVENT(name) \ | |
791 | DEFINE_EVENT(smb3_exit_err_class, smb3_##name, \ | |
792 | TP_PROTO(unsigned int xid, \ | |
793 | const char *func_name, \ | |
794 | int rc), \ | |
795 | TP_ARGS(xid, func_name, rc)) | |
796 | ||
797 | DEFINE_SMB3_EXIT_ERR_EVENT(exit_err); | |
798 | ||
f2bf09e9 SF |
799 | |
800 | DECLARE_EVENT_CLASS(smb3_sync_err_class, | |
801 | TP_PROTO(unsigned long ino, | |
802 | int rc), | |
803 | TP_ARGS(ino, rc), | |
804 | TP_STRUCT__entry( | |
805 | __field(unsigned long, ino) | |
806 | __field(int, rc) | |
807 | ), | |
808 | TP_fast_assign( | |
809 | __entry->ino = ino; | |
810 | __entry->rc = rc; | |
811 | ), | |
812 | TP_printk("\tino=%lu rc=%d", | |
813 | __entry->ino, __entry->rc) | |
814 | ) | |
815 | ||
816 | #define DEFINE_SMB3_SYNC_ERR_EVENT(name) \ | |
817 | DEFINE_EVENT(smb3_sync_err_class, cifs_##name, \ | |
818 | TP_PROTO(unsigned long ino, \ | |
819 | int rc), \ | |
820 | TP_ARGS(ino, rc)) | |
821 | ||
822 | DEFINE_SMB3_SYNC_ERR_EVENT(fsync_err); | |
823 | DEFINE_SMB3_SYNC_ERR_EVENT(flush_err); | |
824 | ||
825 | ||
d683bcd3 SF |
826 | DECLARE_EVENT_CLASS(smb3_enter_exit_class, |
827 | TP_PROTO(unsigned int xid, | |
828 | const char *func_name), | |
829 | TP_ARGS(xid, func_name), | |
830 | TP_STRUCT__entry( | |
831 | __field(unsigned int, xid) | |
eb068818 | 832 | __string(func_name, func_name) |
d683bcd3 SF |
833 | ), |
834 | TP_fast_assign( | |
835 | __entry->xid = xid; | |
2c92ca84 | 836 | __assign_str(func_name); |
d683bcd3 SF |
837 | ), |
838 | TP_printk("\t%s: xid=%u", | |
eb068818 | 839 | __get_str(func_name), __entry->xid) |
d683bcd3 SF |
840 | ) |
841 | ||
842 | #define DEFINE_SMB3_ENTER_EXIT_EVENT(name) \ | |
843 | DEFINE_EVENT(smb3_enter_exit_class, smb3_##name, \ | |
844 | TP_PROTO(unsigned int xid, \ | |
845 | const char *func_name), \ | |
846 | TP_ARGS(xid, func_name)) | |
847 | ||
848 | DEFINE_SMB3_ENTER_EXIT_EVENT(enter); | |
849 | DEFINE_SMB3_ENTER_EXIT_EVENT(exit_done); | |
850 | ||
f8af49dd SF |
851 | /* |
852 | * For SMB2/SMB3 tree connect | |
853 | */ | |
854 | ||
855 | DECLARE_EVENT_CLASS(smb3_tcon_class, | |
856 | TP_PROTO(unsigned int xid, | |
857 | __u32 tid, | |
858 | __u64 sesid, | |
859 | const char *unc_name, | |
860 | int rc), | |
861 | TP_ARGS(xid, tid, sesid, unc_name, rc), | |
862 | TP_STRUCT__entry( | |
863 | __field(unsigned int, xid) | |
864 | __field(__u32, tid) | |
865 | __field(__u64, sesid) | |
68ddb496 | 866 | __string(name, unc_name) |
f8af49dd SF |
867 | __field(int, rc) |
868 | ), | |
869 | TP_fast_assign( | |
870 | __entry->xid = xid; | |
871 | __entry->tid = tid; | |
872 | __entry->sesid = sesid; | |
2c92ca84 | 873 | __assign_str(name); |
f8af49dd SF |
874 | __entry->rc = rc; |
875 | ), | |
876 | TP_printk("xid=%u sid=0x%llx tid=0x%x unc_name=%s rc=%d", | |
877 | __entry->xid, __entry->sesid, __entry->tid, | |
68ddb496 | 878 | __get_str(name), __entry->rc) |
f8af49dd SF |
879 | ) |
880 | ||
881 | #define DEFINE_SMB3_TCON_EVENT(name) \ | |
882 | DEFINE_EVENT(smb3_tcon_class, smb3_##name, \ | |
883 | TP_PROTO(unsigned int xid, \ | |
884 | __u32 tid, \ | |
885 | __u64 sesid, \ | |
886 | const char *unc_name, \ | |
887 | int rc), \ | |
888 | TP_ARGS(xid, tid, sesid, unc_name, rc)) | |
889 | ||
890 | DEFINE_SMB3_TCON_EVENT(tcon); | |
feeec636 | 891 | DEFINE_SMB3_TCON_EVENT(qfs_done); |
f8af49dd | 892 | |
28d59363 | 893 | /* |
efe2e9f3 | 894 | * For smb2/smb3 open (including create and mkdir) calls |
28d59363 | 895 | */ |
efe2e9f3 SF |
896 | |
897 | DECLARE_EVENT_CLASS(smb3_open_enter_class, | |
898 | TP_PROTO(unsigned int xid, | |
899 | __u32 tid, | |
900 | __u64 sesid, | |
fddc6ccc | 901 | const char *full_path, |
efe2e9f3 SF |
902 | int create_options, |
903 | int desired_access), | |
fddc6ccc | 904 | TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access), |
efe2e9f3 SF |
905 | TP_STRUCT__entry( |
906 | __field(unsigned int, xid) | |
907 | __field(__u32, tid) | |
908 | __field(__u64, sesid) | |
fddc6ccc | 909 | __string(path, full_path) |
efe2e9f3 SF |
910 | __field(int, create_options) |
911 | __field(int, desired_access) | |
912 | ), | |
913 | TP_fast_assign( | |
914 | __entry->xid = xid; | |
915 | __entry->tid = tid; | |
916 | __entry->sesid = sesid; | |
2c92ca84 | 917 | __assign_str(path); |
efe2e9f3 SF |
918 | __entry->create_options = create_options; |
919 | __entry->desired_access = desired_access; | |
920 | ), | |
fddc6ccc SP |
921 | TP_printk("xid=%u sid=0x%llx tid=0x%x path=%s cr_opts=0x%x des_access=0x%x", |
922 | __entry->xid, __entry->sesid, __entry->tid, __get_str(path), | |
efe2e9f3 SF |
923 | __entry->create_options, __entry->desired_access) |
924 | ) | |
925 | ||
926 | #define DEFINE_SMB3_OPEN_ENTER_EVENT(name) \ | |
927 | DEFINE_EVENT(smb3_open_enter_class, smb3_##name, \ | |
928 | TP_PROTO(unsigned int xid, \ | |
929 | __u32 tid, \ | |
930 | __u64 sesid, \ | |
fddc6ccc | 931 | const char *full_path, \ |
efe2e9f3 SF |
932 | int create_options, \ |
933 | int desired_access), \ | |
fddc6ccc | 934 | TP_ARGS(xid, tid, sesid, full_path, create_options, desired_access)) |
efe2e9f3 SF |
935 | |
936 | DEFINE_SMB3_OPEN_ENTER_EVENT(open_enter); | |
937 | DEFINE_SMB3_OPEN_ENTER_EVENT(posix_mkdir_enter); | |
938 | ||
28d59363 SF |
939 | DECLARE_EVENT_CLASS(smb3_open_err_class, |
940 | TP_PROTO(unsigned int xid, | |
941 | __u32 tid, | |
942 | __u64 sesid, | |
943 | int create_options, | |
944 | int desired_access, | |
945 | int rc), | |
946 | TP_ARGS(xid, tid, sesid, create_options, desired_access, rc), | |
947 | TP_STRUCT__entry( | |
948 | __field(unsigned int, xid) | |
949 | __field(__u32, tid) | |
950 | __field(__u64, sesid) | |
951 | __field(int, create_options) | |
952 | __field(int, desired_access) | |
953 | __field(int, rc) | |
954 | ), | |
955 | TP_fast_assign( | |
956 | __entry->xid = xid; | |
957 | __entry->tid = tid; | |
958 | __entry->sesid = sesid; | |
959 | __entry->create_options = create_options; | |
960 | __entry->desired_access = desired_access; | |
961 | __entry->rc = rc; | |
962 | ), | |
963 | TP_printk("xid=%u sid=0x%llx tid=0x%x cr_opts=0x%x des_access=0x%x rc=%d", | |
964 | __entry->xid, __entry->sesid, __entry->tid, | |
965 | __entry->create_options, __entry->desired_access, __entry->rc) | |
966 | ) | |
967 | ||
968 | #define DEFINE_SMB3_OPEN_ERR_EVENT(name) \ | |
969 | DEFINE_EVENT(smb3_open_err_class, smb3_##name, \ | |
970 | TP_PROTO(unsigned int xid, \ | |
971 | __u32 tid, \ | |
972 | __u64 sesid, \ | |
973 | int create_options, \ | |
974 | int desired_access, \ | |
975 | int rc), \ | |
976 | TP_ARGS(xid, tid, sesid, create_options, desired_access, rc)) | |
977 | ||
978 | DEFINE_SMB3_OPEN_ERR_EVENT(open_err); | |
bea851b8 | 979 | DEFINE_SMB3_OPEN_ERR_EVENT(posix_mkdir_err); |
28d59363 SF |
980 | |
981 | DECLARE_EVENT_CLASS(smb3_open_done_class, | |
982 | TP_PROTO(unsigned int xid, | |
983 | __u64 fid, | |
984 | __u32 tid, | |
985 | __u64 sesid, | |
986 | int create_options, | |
987 | int desired_access), | |
988 | TP_ARGS(xid, fid, tid, sesid, create_options, desired_access), | |
989 | TP_STRUCT__entry( | |
990 | __field(unsigned int, xid) | |
991 | __field(__u64, fid) | |
992 | __field(__u32, tid) | |
993 | __field(__u64, sesid) | |
994 | __field(int, create_options) | |
995 | __field(int, desired_access) | |
996 | ), | |
997 | TP_fast_assign( | |
998 | __entry->xid = xid; | |
999 | __entry->fid = fid; | |
1000 | __entry->tid = tid; | |
1001 | __entry->sesid = sesid; | |
1002 | __entry->create_options = create_options; | |
1003 | __entry->desired_access = desired_access; | |
1004 | ), | |
1005 | TP_printk("xid=%u sid=0x%llx tid=0x%x fid=0x%llx cr_opts=0x%x des_access=0x%x", | |
1006 | __entry->xid, __entry->sesid, __entry->tid, __entry->fid, | |
1007 | __entry->create_options, __entry->desired_access) | |
1008 | ) | |
1009 | ||
1010 | #define DEFINE_SMB3_OPEN_DONE_EVENT(name) \ | |
1011 | DEFINE_EVENT(smb3_open_done_class, smb3_##name, \ | |
1012 | TP_PROTO(unsigned int xid, \ | |
1013 | __u64 fid, \ | |
1014 | __u32 tid, \ | |
1015 | __u64 sesid, \ | |
1016 | int create_options, \ | |
1017 | int desired_access), \ | |
1018 | TP_ARGS(xid, fid, tid, sesid, create_options, desired_access)) | |
1019 | ||
1020 | DEFINE_SMB3_OPEN_DONE_EVENT(open_done); | |
bea851b8 | 1021 | DEFINE_SMB3_OPEN_DONE_EVENT(posix_mkdir_done); |
28d59363 | 1022 | |
179e44d4 SF |
1023 | |
1024 | DECLARE_EVENT_CLASS(smb3_lease_done_class, | |
1025 | TP_PROTO(__u32 lease_state, | |
1026 | __u32 tid, | |
1027 | __u64 sesid, | |
1028 | __u64 lease_key_low, | |
1029 | __u64 lease_key_high), | |
1030 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high), | |
1031 | TP_STRUCT__entry( | |
1032 | __field(__u32, lease_state) | |
1033 | __field(__u32, tid) | |
1034 | __field(__u64, sesid) | |
1035 | __field(__u64, lease_key_low) | |
1036 | __field(__u64, lease_key_high) | |
1037 | ), | |
1038 | TP_fast_assign( | |
1039 | __entry->lease_state = lease_state; | |
1040 | __entry->tid = tid; | |
1041 | __entry->sesid = sesid; | |
1042 | __entry->lease_key_low = lease_key_low; | |
1043 | __entry->lease_key_high = lease_key_high; | |
1044 | ), | |
1045 | TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x", | |
1046 | __entry->sesid, __entry->tid, __entry->lease_key_high, | |
1047 | __entry->lease_key_low, __entry->lease_state) | |
1048 | ) | |
1049 | ||
1050 | #define DEFINE_SMB3_LEASE_DONE_EVENT(name) \ | |
1051 | DEFINE_EVENT(smb3_lease_done_class, smb3_##name, \ | |
1052 | TP_PROTO(__u32 lease_state, \ | |
1053 | __u32 tid, \ | |
1054 | __u64 sesid, \ | |
1055 | __u64 lease_key_low, \ | |
1056 | __u64 lease_key_high), \ | |
1057 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high)) | |
1058 | ||
1059 | DEFINE_SMB3_LEASE_DONE_EVENT(lease_done); | |
fb253d5b | 1060 | DEFINE_SMB3_LEASE_DONE_EVENT(lease_not_found); |
179e44d4 SF |
1061 | |
1062 | DECLARE_EVENT_CLASS(smb3_lease_err_class, | |
1063 | TP_PROTO(__u32 lease_state, | |
1064 | __u32 tid, | |
1065 | __u64 sesid, | |
1066 | __u64 lease_key_low, | |
1067 | __u64 lease_key_high, | |
1068 | int rc), | |
1069 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc), | |
1070 | TP_STRUCT__entry( | |
1071 | __field(__u32, lease_state) | |
1072 | __field(__u32, tid) | |
1073 | __field(__u64, sesid) | |
1074 | __field(__u64, lease_key_low) | |
1075 | __field(__u64, lease_key_high) | |
1076 | __field(int, rc) | |
1077 | ), | |
1078 | TP_fast_assign( | |
1079 | __entry->lease_state = lease_state; | |
1080 | __entry->tid = tid; | |
1081 | __entry->sesid = sesid; | |
1082 | __entry->lease_key_low = lease_key_low; | |
1083 | __entry->lease_key_high = lease_key_high; | |
1084 | __entry->rc = rc; | |
1085 | ), | |
1086 | TP_printk("sid=0x%llx tid=0x%x lease_key=0x%llx%llx lease_state=0x%x rc=%d", | |
1087 | __entry->sesid, __entry->tid, __entry->lease_key_high, | |
1088 | __entry->lease_key_low, __entry->lease_state, __entry->rc) | |
1089 | ) | |
1090 | ||
1091 | #define DEFINE_SMB3_LEASE_ERR_EVENT(name) \ | |
1092 | DEFINE_EVENT(smb3_lease_err_class, smb3_##name, \ | |
1093 | TP_PROTO(__u32 lease_state, \ | |
1094 | __u32 tid, \ | |
1095 | __u64 sesid, \ | |
1096 | __u64 lease_key_low, \ | |
1097 | __u64 lease_key_high, \ | |
1098 | int rc), \ | |
1099 | TP_ARGS(lease_state, tid, sesid, lease_key_low, lease_key_high, rc)) | |
1100 | ||
1101 | DEFINE_SMB3_LEASE_ERR_EVENT(lease_err); | |
1102 | ||
d7171cd1 SF |
1103 | DECLARE_EVENT_CLASS(smb3_connect_class, |
1104 | TP_PROTO(char *hostname, | |
1105 | __u64 conn_id, | |
1106 | const struct __kernel_sockaddr_storage *dst_addr), | |
1107 | TP_ARGS(hostname, conn_id, dst_addr), | |
1108 | TP_STRUCT__entry( | |
1109 | __string(hostname, hostname) | |
1110 | __field(__u64, conn_id) | |
1111 | __array(__u8, dst_addr, sizeof(struct sockaddr_storage)) | |
1112 | ), | |
1113 | TP_fast_assign( | |
1114 | struct sockaddr_storage *pss = NULL; | |
1115 | ||
1116 | __entry->conn_id = conn_id; | |
1117 | pss = (struct sockaddr_storage *)__entry->dst_addr; | |
1118 | *pss = *dst_addr; | |
2c92ca84 | 1119 | __assign_str(hostname); |
d7171cd1 SF |
1120 | ), |
1121 | TP_printk("conn_id=0x%llx server=%s addr=%pISpsfc", | |
1122 | __entry->conn_id, | |
1123 | __get_str(hostname), | |
1124 | __entry->dst_addr) | |
1125 | ) | |
1126 | ||
1127 | #define DEFINE_SMB3_CONNECT_EVENT(name) \ | |
1128 | DEFINE_EVENT(smb3_connect_class, smb3_##name, \ | |
1129 | TP_PROTO(char *hostname, \ | |
1130 | __u64 conn_id, \ | |
1131 | const struct __kernel_sockaddr_storage *addr), \ | |
1132 | TP_ARGS(hostname, conn_id, addr)) | |
1133 | ||
1134 | DEFINE_SMB3_CONNECT_EVENT(connect_done); | |
e3603ccf SF |
1135 | DEFINE_SMB3_CONNECT_EVENT(smbd_connect_done); |
1136 | DEFINE_SMB3_CONNECT_EVENT(smbd_connect_err); | |
d7171cd1 SF |
1137 | |
1138 | DECLARE_EVENT_CLASS(smb3_connect_err_class, | |
1139 | TP_PROTO(char *hostname, __u64 conn_id, | |
1140 | const struct __kernel_sockaddr_storage *dst_addr, int rc), | |
1141 | TP_ARGS(hostname, conn_id, dst_addr, rc), | |
1142 | TP_STRUCT__entry( | |
1143 | __string(hostname, hostname) | |
1144 | __field(__u64, conn_id) | |
1145 | __array(__u8, dst_addr, sizeof(struct sockaddr_storage)) | |
1146 | __field(int, rc) | |
1147 | ), | |
1148 | TP_fast_assign( | |
1149 | struct sockaddr_storage *pss = NULL; | |
1150 | ||
1151 | __entry->conn_id = conn_id; | |
1152 | __entry->rc = rc; | |
1153 | pss = (struct sockaddr_storage *)__entry->dst_addr; | |
1154 | *pss = *dst_addr; | |
2c92ca84 | 1155 | __assign_str(hostname); |
d7171cd1 SF |
1156 | ), |
1157 | TP_printk("rc=%d conn_id=0x%llx server=%s addr=%pISpsfc", | |
1158 | __entry->rc, | |
1159 | __entry->conn_id, | |
1160 | __get_str(hostname), | |
1161 | __entry->dst_addr) | |
1162 | ) | |
1163 | ||
1164 | #define DEFINE_SMB3_CONNECT_ERR_EVENT(name) \ | |
1165 | DEFINE_EVENT(smb3_connect_err_class, smb3_##name, \ | |
1166 | TP_PROTO(char *hostname, \ | |
1167 | __u64 conn_id, \ | |
1168 | const struct __kernel_sockaddr_storage *addr, \ | |
1169 | int rc), \ | |
1170 | TP_ARGS(hostname, conn_id, addr, rc)) | |
1171 | ||
1172 | DEFINE_SMB3_CONNECT_ERR_EVENT(connect_err); | |
1173 | ||
bf1fdeb7 SF |
1174 | DECLARE_EVENT_CLASS(smb3_reconnect_class, |
1175 | TP_PROTO(__u64 currmid, | |
6d82c27a | 1176 | __u64 conn_id, |
bf1fdeb7 | 1177 | char *hostname), |
6d82c27a | 1178 | TP_ARGS(currmid, conn_id, hostname), |
bf1fdeb7 SF |
1179 | TP_STRUCT__entry( |
1180 | __field(__u64, currmid) | |
6d82c27a | 1181 | __field(__u64, conn_id) |
eb068818 | 1182 | __string(hostname, hostname) |
bf1fdeb7 SF |
1183 | ), |
1184 | TP_fast_assign( | |
1185 | __entry->currmid = currmid; | |
6d82c27a | 1186 | __entry->conn_id = conn_id; |
2c92ca84 | 1187 | __assign_str(hostname); |
bf1fdeb7 | 1188 | ), |
6d82c27a SP |
1189 | TP_printk("conn_id=0x%llx server=%s current_mid=%llu", |
1190 | __entry->conn_id, | |
eb068818 | 1191 | __get_str(hostname), |
bf1fdeb7 SF |
1192 | __entry->currmid) |
1193 | ) | |
1194 | ||
1195 | #define DEFINE_SMB3_RECONNECT_EVENT(name) \ | |
1196 | DEFINE_EVENT(smb3_reconnect_class, smb3_##name, \ | |
1197 | TP_PROTO(__u64 currmid, \ | |
6d82c27a SP |
1198 | __u64 conn_id, \ |
1199 | char *hostname), \ | |
1200 | TP_ARGS(currmid, conn_id, hostname)) | |
bf1fdeb7 SF |
1201 | |
1202 | DEFINE_SMB3_RECONNECT_EVENT(reconnect); | |
1203 | DEFINE_SMB3_RECONNECT_EVENT(partial_send_reconnect); | |
1204 | ||
61986a58 SP |
1205 | DECLARE_EVENT_CLASS(smb3_ses_class, |
1206 | TP_PROTO(__u64 sesid), | |
1207 | TP_ARGS(sesid), | |
1208 | TP_STRUCT__entry( | |
1209 | __field(__u64, sesid) | |
1210 | ), | |
1211 | TP_fast_assign( | |
1212 | __entry->sesid = sesid; | |
1213 | ), | |
1214 | TP_printk("sid=0x%llx", | |
1215 | __entry->sesid) | |
1216 | ) | |
1217 | ||
1218 | #define DEFINE_SMB3_SES_EVENT(name) \ | |
1219 | DEFINE_EVENT(smb3_ses_class, smb3_##name, \ | |
1220 | TP_PROTO(__u64 sesid), \ | |
1221 | TP_ARGS(sesid)) | |
1222 | ||
1223 | DEFINE_SMB3_SES_EVENT(ses_not_found); | |
1224 | ||
073dd87c SF |
1225 | DECLARE_EVENT_CLASS(smb3_ioctl_class, |
1226 | TP_PROTO(unsigned int xid, | |
1227 | __u64 fid, | |
1228 | unsigned int command), | |
1229 | TP_ARGS(xid, fid, command), | |
1230 | TP_STRUCT__entry( | |
1231 | __field(unsigned int, xid) | |
1232 | __field(__u64, fid) | |
1233 | __field(unsigned int, command) | |
1234 | ), | |
1235 | TP_fast_assign( | |
1236 | __entry->xid = xid; | |
1237 | __entry->fid = fid; | |
1238 | __entry->command = command; | |
1239 | ), | |
1240 | TP_printk("xid=%u fid=0x%llx ioctl cmd=0x%x", | |
1241 | __entry->xid, __entry->fid, __entry->command) | |
1242 | ) | |
1243 | ||
1244 | #define DEFINE_SMB3_IOCTL_EVENT(name) \ | |
1245 | DEFINE_EVENT(smb3_ioctl_class, smb3_##name, \ | |
1246 | TP_PROTO(unsigned int xid, \ | |
1247 | __u64 fid, \ | |
1248 | unsigned int command), \ | |
1249 | TP_ARGS(xid, fid, command)) | |
1250 | ||
1251 | DEFINE_SMB3_IOCTL_EVENT(ioctl); | |
1252 | ||
1253 | ||
1254 | ||
1255 | ||
1256 | ||
b340a4d4 SF |
1257 | DECLARE_EVENT_CLASS(smb3_credit_class, |
1258 | TP_PROTO(__u64 currmid, | |
6d82c27a | 1259 | __u64 conn_id, |
b340a4d4 | 1260 | char *hostname, |
9eec21bf | 1261 | int credits, |
6d82c27a SP |
1262 | int credits_to_add, |
1263 | int in_flight), | |
1264 | TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight), | |
b340a4d4 SF |
1265 | TP_STRUCT__entry( |
1266 | __field(__u64, currmid) | |
6d82c27a | 1267 | __field(__u64, conn_id) |
eb068818 | 1268 | __string(hostname, hostname) |
b340a4d4 | 1269 | __field(int, credits) |
9eec21bf | 1270 | __field(int, credits_to_add) |
6d82c27a | 1271 | __field(int, in_flight) |
b340a4d4 SF |
1272 | ), |
1273 | TP_fast_assign( | |
1274 | __entry->currmid = currmid; | |
6d82c27a | 1275 | __entry->conn_id = conn_id; |
2c92ca84 | 1276 | __assign_str(hostname); |
b340a4d4 | 1277 | __entry->credits = credits; |
9eec21bf | 1278 | __entry->credits_to_add = credits_to_add; |
6d82c27a | 1279 | __entry->in_flight = in_flight; |
b340a4d4 | 1280 | ), |
6d82c27a SP |
1281 | TP_printk("conn_id=0x%llx server=%s current_mid=%llu " |
1282 | "credits=%d credit_change=%d in_flight=%d", | |
1283 | __entry->conn_id, | |
eb068818 | 1284 | __get_str(hostname), |
b340a4d4 | 1285 | __entry->currmid, |
9eec21bf | 1286 | __entry->credits, |
6d82c27a SP |
1287 | __entry->credits_to_add, |
1288 | __entry->in_flight) | |
b340a4d4 SF |
1289 | ) |
1290 | ||
1291 | #define DEFINE_SMB3_CREDIT_EVENT(name) \ | |
1292 | DEFINE_EVENT(smb3_credit_class, smb3_##name, \ | |
1293 | TP_PROTO(__u64 currmid, \ | |
6d82c27a | 1294 | __u64 conn_id, \ |
b340a4d4 | 1295 | char *hostname, \ |
9eec21bf | 1296 | int credits, \ |
6d82c27a SP |
1297 | int credits_to_add, \ |
1298 | int in_flight), \ | |
1299 | TP_ARGS(currmid, conn_id, hostname, credits, credits_to_add, in_flight)) | |
b340a4d4 SF |
1300 | |
1301 | DEFINE_SMB3_CREDIT_EVENT(reconnect_with_invalid_credits); | |
cd7b699b | 1302 | DEFINE_SMB3_CREDIT_EVENT(reconnect_detected); |
7937ca96 | 1303 | DEFINE_SMB3_CREDIT_EVENT(credit_timeout); |
cd7b699b SP |
1304 | DEFINE_SMB3_CREDIT_EVENT(insufficient_credits); |
1305 | DEFINE_SMB3_CREDIT_EVENT(too_many_credits); | |
9eec21bf | 1306 | DEFINE_SMB3_CREDIT_EVENT(add_credits); |
1ddff774 DH |
1307 | DEFINE_SMB3_CREDIT_EVENT(adj_credits); |
1308 | DEFINE_SMB3_CREDIT_EVENT(hdr_credits); | |
1309 | DEFINE_SMB3_CREDIT_EVENT(nblk_credits); | |
1310 | DEFINE_SMB3_CREDIT_EVENT(pend_credits); | |
1311 | DEFINE_SMB3_CREDIT_EVENT(wait_credits); | |
1312 | DEFINE_SMB3_CREDIT_EVENT(waitff_credits); | |
1313 | DEFINE_SMB3_CREDIT_EVENT(overflow_credits); | |
cd7b699b | 1314 | DEFINE_SMB3_CREDIT_EVENT(set_credits); |
b340a4d4 | 1315 | |
afc23feb DH |
1316 | |
1317 | TRACE_EVENT(smb3_tcon_ref, | |
1318 | TP_PROTO(unsigned int tcon_debug_id, int ref, | |
1319 | enum smb3_tcon_ref_trace trace), | |
1320 | TP_ARGS(tcon_debug_id, ref, trace), | |
1321 | TP_STRUCT__entry( | |
1322 | __field(unsigned int, tcon) | |
1323 | __field(int, ref) | |
1324 | __field(enum smb3_tcon_ref_trace, trace) | |
1325 | ), | |
1326 | TP_fast_assign( | |
1327 | __entry->tcon = tcon_debug_id; | |
1328 | __entry->ref = ref; | |
1329 | __entry->trace = trace; | |
1330 | ), | |
1331 | TP_printk("TC=%08x %s r=%u", | |
1332 | __entry->tcon, | |
1333 | __print_symbolic(__entry->trace, smb3_tcon_ref_traces), | |
1334 | __entry->ref) | |
1335 | ); | |
1336 | ||
519be989 DH |
1337 | TRACE_EVENT(smb3_rw_credits, |
1338 | TP_PROTO(unsigned int rreq_debug_id, | |
1339 | unsigned int subreq_debug_index, | |
1340 | unsigned int subreq_credits, | |
1341 | unsigned int server_credits, | |
1342 | int server_in_flight, | |
1343 | int credit_change, | |
1344 | enum smb3_rw_credits_trace trace), | |
1345 | TP_ARGS(rreq_debug_id, subreq_debug_index, subreq_credits, | |
1346 | server_credits, server_in_flight, credit_change, trace), | |
1347 | TP_STRUCT__entry( | |
1348 | __field(unsigned int, rreq_debug_id) | |
1349 | __field(unsigned int, subreq_debug_index) | |
1350 | __field(unsigned int, subreq_credits) | |
1351 | __field(unsigned int, server_credits) | |
1352 | __field(int, in_flight) | |
1353 | __field(int, credit_change) | |
1354 | __field(enum smb3_rw_credits_trace, trace) | |
1355 | ), | |
1356 | TP_fast_assign( | |
1357 | __entry->rreq_debug_id = rreq_debug_id; | |
1358 | __entry->subreq_debug_index = subreq_debug_index; | |
1359 | __entry->subreq_credits = subreq_credits; | |
1360 | __entry->server_credits = server_credits; | |
1361 | __entry->in_flight = server_in_flight; | |
1362 | __entry->credit_change = credit_change; | |
1363 | __entry->trace = trace; | |
1364 | ), | |
1365 | TP_printk("R=%08x[%x] %s cred=%u chg=%d pool=%u ifl=%d", | |
1366 | __entry->rreq_debug_id, __entry->subreq_debug_index, | |
1367 | __print_symbolic(__entry->trace, smb3_rw_credits_traces), | |
1368 | __entry->subreq_credits, __entry->credit_change, | |
1369 | __entry->server_credits, __entry->in_flight) | |
1370 | ); | |
1371 | ||
afc23feb DH |
1372 | |
1373 | #undef EM | |
1374 | #undef E_ | |
eccb4422 SF |
1375 | #endif /* _CIFS_TRACE_H */ |
1376 | ||
1377 | #undef TRACE_INCLUDE_PATH | |
1378 | #define TRACE_INCLUDE_PATH . | |
1379 | #define TRACE_INCLUDE_FILE trace | |
1380 | #include <trace/define_trace.h> |