root/fs/cifs/trace.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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>

/* [<][>][^][v][top][bottom][index][help] */