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