linux/fs/ocfs2/ocfs2_trace.h
<<
>>
Prefs
   1#undef TRACE_SYSTEM
   2#define TRACE_SYSTEM ocfs2
   3
   4#if !defined(_TRACE_OCFS2_H) || defined(TRACE_HEADER_MULTI_READ)
   5#define _TRACE_OCFS2_H
   6
   7#include <linux/tracepoint.h>
   8
   9DECLARE_EVENT_CLASS(ocfs2__int,
  10        TP_PROTO(int num),
  11        TP_ARGS(num),
  12        TP_STRUCT__entry(
  13                __field(int, num)
  14        ),
  15        TP_fast_assign(
  16                __entry->num = num;
  17        ),
  18        TP_printk("%d", __entry->num)
  19);
  20
  21#define DEFINE_OCFS2_INT_EVENT(name)    \
  22DEFINE_EVENT(ocfs2__int, name,  \
  23        TP_PROTO(int num),      \
  24        TP_ARGS(num))
  25
  26DECLARE_EVENT_CLASS(ocfs2__uint,
  27        TP_PROTO(unsigned int num),
  28        TP_ARGS(num),
  29        TP_STRUCT__entry(
  30                __field(        unsigned int,   num             )
  31        ),
  32        TP_fast_assign(
  33                __entry->num    =       num;
  34        ),
  35        TP_printk("%u", __entry->num)
  36);
  37
  38#define DEFINE_OCFS2_UINT_EVENT(name)   \
  39DEFINE_EVENT(ocfs2__uint, name, \
  40        TP_PROTO(unsigned int num),     \
  41        TP_ARGS(num))
  42
  43DECLARE_EVENT_CLASS(ocfs2__ull,
  44        TP_PROTO(unsigned long long blkno),
  45        TP_ARGS(blkno),
  46        TP_STRUCT__entry(
  47                __field(unsigned long long, blkno)
  48        ),
  49        TP_fast_assign(
  50                __entry->blkno = blkno;
  51        ),
  52        TP_printk("%llu", __entry->blkno)
  53);
  54
  55#define DEFINE_OCFS2_ULL_EVENT(name)    \
  56DEFINE_EVENT(ocfs2__ull, name,  \
  57        TP_PROTO(unsigned long long num),       \
  58        TP_ARGS(num))
  59
  60DECLARE_EVENT_CLASS(ocfs2__pointer,
  61        TP_PROTO(void *pointer),
  62        TP_ARGS(pointer),
  63        TP_STRUCT__entry(
  64                __field(void *, pointer)
  65        ),
  66        TP_fast_assign(
  67                __entry->pointer = pointer;
  68        ),
  69        TP_printk("%p", __entry->pointer)
  70);
  71
  72#define DEFINE_OCFS2_POINTER_EVENT(name)        \
  73DEFINE_EVENT(ocfs2__pointer, name,      \
  74        TP_PROTO(void *pointer),        \
  75        TP_ARGS(pointer))
  76
  77DECLARE_EVENT_CLASS(ocfs2__string,
  78        TP_PROTO(const char *name),
  79        TP_ARGS(name),
  80        TP_STRUCT__entry(
  81                __string(name,name)
  82        ),
  83        TP_fast_assign(
  84                __assign_str(name, name);
  85        ),
  86        TP_printk("%s", __get_str(name))
  87);
  88
  89#define DEFINE_OCFS2_STRING_EVENT(name) \
  90DEFINE_EVENT(ocfs2__string, name,       \
  91        TP_PROTO(const char *name),     \
  92        TP_ARGS(name))
  93
  94DECLARE_EVENT_CLASS(ocfs2__int_int,
  95        TP_PROTO(int value1, int value2),
  96        TP_ARGS(value1, value2),
  97        TP_STRUCT__entry(
  98                __field(int, value1)
  99                __field(int, value2)
 100        ),
 101        TP_fast_assign(
 102                __entry->value1 = value1;
 103                __entry->value2 = value2;
 104        ),
 105        TP_printk("%d %d", __entry->value1, __entry->value2)
 106);
 107
 108#define DEFINE_OCFS2_INT_INT_EVENT(name)        \
 109DEFINE_EVENT(ocfs2__int_int, name,      \
 110        TP_PROTO(int val1, int val2),   \
 111        TP_ARGS(val1, val2))
 112
 113DECLARE_EVENT_CLASS(ocfs2__uint_int,
 114        TP_PROTO(unsigned int value1, int value2),
 115        TP_ARGS(value1, value2),
 116        TP_STRUCT__entry(
 117                __field(unsigned int, value1)
 118                __field(int, value2)
 119        ),
 120        TP_fast_assign(
 121                __entry->value1 = value1;
 122                __entry->value2 = value2;
 123        ),
 124        TP_printk("%u %d", __entry->value1, __entry->value2)
 125);
 126
 127#define DEFINE_OCFS2_UINT_INT_EVENT(name)       \
 128DEFINE_EVENT(ocfs2__uint_int, name,     \
 129        TP_PROTO(unsigned int val1, int val2),  \
 130        TP_ARGS(val1, val2))
 131
 132DECLARE_EVENT_CLASS(ocfs2__uint_uint,
 133        TP_PROTO(unsigned int value1, unsigned int value2),
 134        TP_ARGS(value1, value2),
 135        TP_STRUCT__entry(
 136                __field(unsigned int, value1)
 137                __field(unsigned int, value2)
 138        ),
 139        TP_fast_assign(
 140                __entry->value1 = value1;
 141                __entry->value2 = value2;
 142        ),
 143        TP_printk("%u %u", __entry->value1, __entry->value2)
 144);
 145
 146#define DEFINE_OCFS2_UINT_UINT_EVENT(name)      \
 147DEFINE_EVENT(ocfs2__uint_uint, name,    \
 148        TP_PROTO(unsigned int val1, unsigned int val2), \
 149        TP_ARGS(val1, val2))
 150
 151DECLARE_EVENT_CLASS(ocfs2__ull_uint,
 152        TP_PROTO(unsigned long long value1, unsigned int value2),
 153        TP_ARGS(value1, value2),
 154        TP_STRUCT__entry(
 155                __field(unsigned long long, value1)
 156                __field(unsigned int, value2)
 157        ),
 158        TP_fast_assign(
 159                __entry->value1 = value1;
 160                __entry->value2 = value2;
 161        ),
 162        TP_printk("%llu %u", __entry->value1, __entry->value2)
 163);
 164
 165#define DEFINE_OCFS2_ULL_UINT_EVENT(name)       \
 166DEFINE_EVENT(ocfs2__ull_uint, name,     \
 167        TP_PROTO(unsigned long long val1, unsigned int val2),   \
 168        TP_ARGS(val1, val2))
 169
 170DECLARE_EVENT_CLASS(ocfs2__ull_int,
 171        TP_PROTO(unsigned long long value1, int value2),
 172        TP_ARGS(value1, value2),
 173        TP_STRUCT__entry(
 174                __field(unsigned long long, value1)
 175                __field(int, value2)
 176        ),
 177        TP_fast_assign(
 178                __entry->value1 = value1;
 179                __entry->value2 = value2;
 180        ),
 181        TP_printk("%llu %d", __entry->value1, __entry->value2)
 182);
 183
 184#define DEFINE_OCFS2_ULL_INT_EVENT(name)        \
 185DEFINE_EVENT(ocfs2__ull_int, name,      \
 186        TP_PROTO(unsigned long long val1, int val2),    \
 187        TP_ARGS(val1, val2))
 188
 189DECLARE_EVENT_CLASS(ocfs2__ull_ull,
 190        TP_PROTO(unsigned long long value1, unsigned long long value2),
 191        TP_ARGS(value1, value2),
 192        TP_STRUCT__entry(
 193                __field(unsigned long long, value1)
 194                __field(unsigned long long, value2)
 195        ),
 196        TP_fast_assign(
 197                __entry->value1 = value1;
 198                __entry->value2 = value2;
 199        ),
 200        TP_printk("%llu %llu", __entry->value1, __entry->value2)
 201);
 202
 203#define DEFINE_OCFS2_ULL_ULL_EVENT(name)        \
 204DEFINE_EVENT(ocfs2__ull_ull, name,      \
 205        TP_PROTO(unsigned long long val1, unsigned long long val2),     \
 206        TP_ARGS(val1, val2))
 207
 208DECLARE_EVENT_CLASS(ocfs2__ull_ull_uint,
 209        TP_PROTO(unsigned long long value1,
 210                 unsigned long long value2, unsigned int value3),
 211        TP_ARGS(value1, value2, value3),
 212        TP_STRUCT__entry(
 213                __field(unsigned long long, value1)
 214                __field(unsigned long long, value2)
 215                __field(unsigned int, value3)
 216        ),
 217        TP_fast_assign(
 218                __entry->value1 = value1;
 219                __entry->value2 = value2;
 220                __entry->value3 = value3;
 221        ),
 222        TP_printk("%llu %llu %u",
 223                  __entry->value1, __entry->value2, __entry->value3)
 224);
 225
 226#define DEFINE_OCFS2_ULL_ULL_UINT_EVENT(name)   \
 227DEFINE_EVENT(ocfs2__ull_ull_uint, name, \
 228        TP_PROTO(unsigned long long val1,       \
 229                 unsigned long long val2, unsigned int val3),   \
 230        TP_ARGS(val1, val2, val3))
 231
 232DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint,
 233        TP_PROTO(unsigned long long value1,
 234                 unsigned int value2, unsigned int value3),
 235        TP_ARGS(value1, value2, value3),
 236        TP_STRUCT__entry(
 237                __field(unsigned long long, value1)
 238                __field(unsigned int, value2)
 239                __field(unsigned int, value3)
 240        ),
 241        TP_fast_assign(
 242                __entry->value1 = value1;
 243                __entry->value2 = value2;
 244                __entry->value3 = value3;
 245        ),
 246        TP_printk("%llu %u %u", __entry->value1,
 247                  __entry->value2, __entry->value3)
 248);
 249
 250#define DEFINE_OCFS2_ULL_UINT_UINT_EVENT(name)  \
 251DEFINE_EVENT(ocfs2__ull_uint_uint, name,        \
 252        TP_PROTO(unsigned long long val1,       \
 253                 unsigned int val2, unsigned int val3), \
 254        TP_ARGS(val1, val2, val3))
 255
 256DECLARE_EVENT_CLASS(ocfs2__uint_uint_uint,
 257        TP_PROTO(unsigned int value1, unsigned int value2,
 258                 unsigned int value3),
 259        TP_ARGS(value1, value2, value3),
 260        TP_STRUCT__entry(
 261                __field(        unsigned int,   value1          )
 262                __field(        unsigned int,   value2          )
 263                __field(        unsigned int,   value3          )
 264        ),
 265        TP_fast_assign(
 266                __entry->value1 =       value1;
 267                __entry->value2 =       value2;
 268                __entry->value3 =       value3;
 269        ),
 270        TP_printk("%u %u %u", __entry->value1, __entry->value2, __entry->value3)
 271);
 272
 273#define DEFINE_OCFS2_UINT_UINT_UINT_EVENT(name) \
 274DEFINE_EVENT(ocfs2__uint_uint_uint, name,       \
 275        TP_PROTO(unsigned int value1, unsigned int value2,      \
 276                 unsigned int value3),  \
 277        TP_ARGS(value1, value2, value3))
 278
 279DECLARE_EVENT_CLASS(ocfs2__ull_ull_ull,
 280        TP_PROTO(unsigned long long value1,
 281                 unsigned long long value2, unsigned long long value3),
 282        TP_ARGS(value1, value2, value3),
 283        TP_STRUCT__entry(
 284                __field(unsigned long long, value1)
 285                __field(unsigned long long, value2)
 286                __field(unsigned long long, value3)
 287        ),
 288        TP_fast_assign(
 289                __entry->value1 = value1;
 290                __entry->value2 = value2;
 291                __entry->value3 = value3;
 292        ),
 293        TP_printk("%llu %llu %llu",
 294                  __entry->value1, __entry->value2, __entry->value3)
 295);
 296
 297#define DEFINE_OCFS2_ULL_ULL_ULL_EVENT(name)    \
 298DEFINE_EVENT(ocfs2__ull_ull_ull, name,  \
 299        TP_PROTO(unsigned long long value1, unsigned long long value2,  \
 300                 unsigned long long value3),    \
 301        TP_ARGS(value1, value2, value3))
 302
 303DECLARE_EVENT_CLASS(ocfs2__ull_int_int_int,
 304        TP_PROTO(unsigned long long ull, int value1, int value2, int value3),
 305        TP_ARGS(ull, value1, value2, value3),
 306        TP_STRUCT__entry(
 307                __field(        unsigned long long,     ull     )
 308                __field(        int,    value1                  )
 309                __field(        int,    value2                  )
 310                __field(        int,    value3                  )
 311        ),
 312        TP_fast_assign(
 313                __entry->ull            = ull;
 314                __entry->value1         = value1;
 315                __entry->value2         = value2;
 316                __entry->value3         = value3;
 317        ),
 318        TP_printk("%llu %d %d %d",
 319                  __entry->ull, __entry->value1,
 320                  __entry->value2, __entry->value3)
 321);
 322
 323#define DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(name)        \
 324DEFINE_EVENT(ocfs2__ull_int_int_int, name,      \
 325        TP_PROTO(unsigned long long ull, int value1,    \
 326                 int value2, int value3),       \
 327        TP_ARGS(ull, value1, value2, value3))
 328
 329DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint_uint,
 330        TP_PROTO(unsigned long long ull, unsigned int value1,
 331                 unsigned int value2, unsigned int value3),
 332        TP_ARGS(ull, value1, value2, value3),
 333        TP_STRUCT__entry(
 334                __field(unsigned long long, ull)
 335                __field(unsigned int, value1)
 336                __field(unsigned int, value2)
 337                __field(unsigned int, value3)
 338        ),
 339        TP_fast_assign(
 340                __entry->ull = ull;
 341                __entry->value1 = value1;
 342                __entry->value2 = value2;
 343                __entry->value3 = value3;
 344        ),
 345        TP_printk("%llu %u %u %u",
 346                  __entry->ull, __entry->value1,
 347                  __entry->value2, __entry->value3)
 348);
 349
 350#define DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(name)     \
 351DEFINE_EVENT(ocfs2__ull_uint_uint_uint, name,   \
 352        TP_PROTO(unsigned long long ull, unsigned int value1,   \
 353                 unsigned int value2, unsigned int value3),     \
 354        TP_ARGS(ull, value1, value2, value3))
 355
 356DECLARE_EVENT_CLASS(ocfs2__ull_ull_uint_uint,
 357        TP_PROTO(unsigned long long value1, unsigned long long value2,
 358                 unsigned int value3, unsigned int value4),
 359        TP_ARGS(value1, value2, value3, value4),
 360        TP_STRUCT__entry(
 361                __field(unsigned long long, value1)
 362                __field(unsigned long long, value2)
 363                __field(unsigned int, value3)
 364                __field(unsigned int, value4)
 365        ),
 366        TP_fast_assign(
 367                __entry->value1 = value1;
 368                __entry->value2 = value2;
 369                __entry->value3 = value3;
 370                __entry->value4 = value4;
 371        ),
 372        TP_printk("%llu %llu %u %u",
 373                  __entry->value1, __entry->value2,
 374                  __entry->value3, __entry->value4)
 375);
 376
 377#define DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(name)      \
 378DEFINE_EVENT(ocfs2__ull_ull_uint_uint, name,    \
 379        TP_PROTO(unsigned long long ull, unsigned long long ull1,       \
 380                 unsigned int value2, unsigned int value3),     \
 381        TP_ARGS(ull, ull1, value2, value3))
 382
 383/* Trace events for fs/ocfs2/alloc.c. */
 384DECLARE_EVENT_CLASS(ocfs2__btree_ops,
 385        TP_PROTO(unsigned long long owner,\
 386                 unsigned int value1, unsigned int value2),
 387        TP_ARGS(owner, value1, value2),
 388        TP_STRUCT__entry(
 389                __field(unsigned long long, owner)
 390                __field(unsigned int, value1)
 391                __field(unsigned int, value2)
 392        ),
 393        TP_fast_assign(
 394                __entry->owner = owner;
 395                __entry->value1 = value1;
 396                __entry->value2 = value2;
 397        ),
 398        TP_printk("%llu %u %u",
 399                  __entry->owner, __entry->value1, __entry->value2)
 400);
 401
 402#define DEFINE_OCFS2_BTREE_EVENT(name)  \
 403DEFINE_EVENT(ocfs2__btree_ops, name,    \
 404        TP_PROTO(unsigned long long owner,      \
 405                 unsigned int value1, unsigned int value2),     \
 406        TP_ARGS(owner, value1, value2))
 407
 408DEFINE_OCFS2_BTREE_EVENT(ocfs2_adjust_rightmost_branch);
 409
 410DEFINE_OCFS2_BTREE_EVENT(ocfs2_rotate_tree_right);
 411
 412DEFINE_OCFS2_BTREE_EVENT(ocfs2_append_rec_to_path);
 413
 414DEFINE_OCFS2_BTREE_EVENT(ocfs2_insert_extent_start);
 415
 416DEFINE_OCFS2_BTREE_EVENT(ocfs2_add_clusters_in_btree);
 417
 418DEFINE_OCFS2_INT_EVENT(ocfs2_num_free_extents);
 419
 420DEFINE_OCFS2_INT_EVENT(ocfs2_complete_edge_insert);
 421
 422TRACE_EVENT(ocfs2_grow_tree,
 423        TP_PROTO(unsigned long long owner, int depth),
 424        TP_ARGS(owner, depth),
 425        TP_STRUCT__entry(
 426                __field(unsigned long long, owner)
 427                __field(int, depth)
 428        ),
 429        TP_fast_assign(
 430                __entry->owner = owner;
 431                __entry->depth = depth;
 432        ),
 433        TP_printk("%llu %d", __entry->owner, __entry->depth)
 434);
 435
 436TRACE_EVENT(ocfs2_rotate_subtree,
 437        TP_PROTO(int subtree_root, unsigned long long blkno,
 438                 int depth),
 439        TP_ARGS(subtree_root, blkno, depth),
 440        TP_STRUCT__entry(
 441                __field(int, subtree_root)
 442                __field(unsigned long long, blkno)
 443                __field(int, depth)
 444        ),
 445        TP_fast_assign(
 446                __entry->subtree_root = subtree_root;
 447                __entry->blkno = blkno;
 448                __entry->depth = depth;
 449        ),
 450        TP_printk("%d %llu %d", __entry->subtree_root,
 451                  __entry->blkno, __entry->depth)
 452);
 453
 454TRACE_EVENT(ocfs2_insert_extent,
 455        TP_PROTO(unsigned int ins_appending, unsigned int ins_contig,
 456                 int ins_contig_index, int free_records, int ins_tree_depth),
 457        TP_ARGS(ins_appending, ins_contig, ins_contig_index, free_records,
 458                ins_tree_depth),
 459        TP_STRUCT__entry(
 460                __field(unsigned int, ins_appending)
 461                __field(unsigned int, ins_contig)
 462                __field(int, ins_contig_index)
 463                __field(int, free_records)
 464                __field(int, ins_tree_depth)
 465        ),
 466        TP_fast_assign(
 467                __entry->ins_appending = ins_appending;
 468                __entry->ins_contig = ins_contig;
 469                __entry->ins_contig_index = ins_contig_index;
 470                __entry->free_records = free_records;
 471                __entry->ins_tree_depth = ins_tree_depth;
 472        ),
 473        TP_printk("%u %u %d %d %d",
 474                  __entry->ins_appending, __entry->ins_contig,
 475                  __entry->ins_contig_index, __entry->free_records,
 476                  __entry->ins_tree_depth)
 477);
 478
 479TRACE_EVENT(ocfs2_split_extent,
 480        TP_PROTO(int split_index, unsigned int c_contig_type,
 481                 unsigned int c_has_empty_extent,
 482                 unsigned int c_split_covers_rec),
 483        TP_ARGS(split_index, c_contig_type,
 484                c_has_empty_extent, c_split_covers_rec),
 485        TP_STRUCT__entry(
 486                __field(int, split_index)
 487                __field(unsigned int, c_contig_type)
 488                __field(unsigned int, c_has_empty_extent)
 489                __field(unsigned int, c_split_covers_rec)
 490        ),
 491        TP_fast_assign(
 492                __entry->split_index = split_index;
 493                __entry->c_contig_type = c_contig_type;
 494                __entry->c_has_empty_extent = c_has_empty_extent;
 495                __entry->c_split_covers_rec = c_split_covers_rec;
 496        ),
 497        TP_printk("%d %u %u %u", __entry->split_index, __entry->c_contig_type,
 498                  __entry->c_has_empty_extent, __entry->c_split_covers_rec)
 499);
 500
 501TRACE_EVENT(ocfs2_remove_extent,
 502        TP_PROTO(unsigned long long owner, unsigned int cpos,
 503                 unsigned int len, int index,
 504                 unsigned int e_cpos, unsigned int clusters),
 505        TP_ARGS(owner, cpos, len, index, e_cpos, clusters),
 506        TP_STRUCT__entry(
 507                __field(unsigned long long, owner)
 508                __field(unsigned int, cpos)
 509                __field(unsigned int, len)
 510                __field(int, index)
 511                __field(unsigned int, e_cpos)
 512                __field(unsigned int, clusters)
 513        ),
 514        TP_fast_assign(
 515                __entry->owner = owner;
 516                __entry->cpos = cpos;
 517                __entry->len = len;
 518                __entry->index = index;
 519                __entry->e_cpos = e_cpos;
 520                __entry->clusters = clusters;
 521        ),
 522        TP_printk("%llu %u %u %d %u %u",
 523                  __entry->owner, __entry->cpos, __entry->len, __entry->index,
 524                  __entry->e_cpos, __entry->clusters)
 525);
 526
 527TRACE_EVENT(ocfs2_commit_truncate,
 528        TP_PROTO(unsigned long long ino, unsigned int new_cpos,
 529                 unsigned int clusters, unsigned int depth),
 530        TP_ARGS(ino, new_cpos, clusters, depth),
 531        TP_STRUCT__entry(
 532                __field(unsigned long long, ino)
 533                __field(unsigned int, new_cpos)
 534                __field(unsigned int, clusters)
 535                __field(unsigned int, depth)
 536        ),
 537        TP_fast_assign(
 538                __entry->ino = ino;
 539                __entry->new_cpos = new_cpos;
 540                __entry->clusters = clusters;
 541                __entry->depth = depth;
 542        ),
 543        TP_printk("%llu %u %u %u",
 544                  __entry->ino, __entry->new_cpos,
 545                  __entry->clusters, __entry->depth)
 546);
 547
 548TRACE_EVENT(ocfs2_validate_extent_block,
 549        TP_PROTO(unsigned long long blkno),
 550        TP_ARGS(blkno),
 551        TP_STRUCT__entry(
 552                __field(unsigned long long, blkno)
 553        ),
 554        TP_fast_assign(
 555                __entry->blkno = blkno;
 556        ),
 557        TP_printk("%llu ", __entry->blkno)
 558);
 559
 560TRACE_EVENT(ocfs2_rotate_leaf,
 561        TP_PROTO(unsigned int insert_cpos, int insert_index,
 562                 int has_empty, int next_free,
 563                 unsigned int l_count),
 564        TP_ARGS(insert_cpos, insert_index, has_empty,
 565                next_free, l_count),
 566        TP_STRUCT__entry(
 567                __field(unsigned int, insert_cpos)
 568                __field(int, insert_index)
 569                __field(int, has_empty)
 570                __field(int, next_free)
 571                __field(unsigned int, l_count)
 572        ),
 573        TP_fast_assign(
 574                __entry->insert_cpos = insert_cpos;
 575                __entry->insert_index = insert_index;
 576                __entry->has_empty = has_empty;
 577                __entry->next_free = next_free;
 578                __entry->l_count = l_count;
 579        ),
 580        TP_printk("%u %d %d %d %u", __entry->insert_cpos,
 581                  __entry->insert_index, __entry->has_empty,
 582                  __entry->next_free, __entry->l_count)
 583);
 584
 585TRACE_EVENT(ocfs2_add_clusters_in_btree_ret,
 586        TP_PROTO(int status, int reason, int err),
 587        TP_ARGS(status, reason, err),
 588        TP_STRUCT__entry(
 589                __field(int, status)
 590                __field(int, reason)
 591                __field(int, err)
 592        ),
 593        TP_fast_assign(
 594                __entry->status = status;
 595                __entry->reason = reason;
 596                __entry->err = err;
 597        ),
 598        TP_printk("%d %d %d", __entry->status,
 599                  __entry->reason, __entry->err)
 600);
 601
 602TRACE_EVENT(ocfs2_mark_extent_written,
 603        TP_PROTO(unsigned long long owner, unsigned int cpos,
 604                 unsigned int len, unsigned int phys),
 605        TP_ARGS(owner, cpos, len, phys),
 606        TP_STRUCT__entry(
 607                __field(unsigned long long, owner)
 608                __field(unsigned int, cpos)
 609                __field(unsigned int, len)
 610                __field(unsigned int, phys)
 611        ),
 612        TP_fast_assign(
 613                __entry->owner = owner;
 614                __entry->cpos = cpos;
 615                __entry->len = len;
 616                __entry->phys = phys;
 617        ),
 618        TP_printk("%llu %u %u %u",
 619                  __entry->owner, __entry->cpos,
 620                  __entry->len, __entry->phys)
 621);
 622
 623DECLARE_EVENT_CLASS(ocfs2__truncate_log_ops,
 624        TP_PROTO(unsigned long long blkno, int index,
 625                 unsigned int start, unsigned int num),
 626        TP_ARGS(blkno, index, start, num),
 627        TP_STRUCT__entry(
 628                __field(unsigned long long, blkno)
 629                __field(int, index)
 630                __field(unsigned int, start)
 631                __field(unsigned int, num)
 632        ),
 633        TP_fast_assign(
 634                __entry->blkno = blkno;
 635                __entry->index = index;
 636                __entry->start = start;
 637                __entry->num = num;
 638        ),
 639        TP_printk("%llu %d %u %u",
 640                  __entry->blkno, __entry->index,
 641                  __entry->start, __entry->num)
 642);
 643
 644#define DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(name)       \
 645DEFINE_EVENT(ocfs2__truncate_log_ops, name,     \
 646        TP_PROTO(unsigned long long blkno, int index,   \
 647                 unsigned int start, unsigned int num), \
 648        TP_ARGS(blkno, index, start, num))
 649
 650DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_truncate_log_append);
 651
 652DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_replay_truncate_records);
 653
 654DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_flush_truncate_log);
 655
 656DEFINE_OCFS2_INT_EVENT(ocfs2_begin_truncate_log_recovery);
 657
 658DEFINE_OCFS2_INT_EVENT(ocfs2_truncate_log_recovery_num);
 659
 660DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_complete_truncate_log_recovery);
 661
 662DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_free_cached_blocks);
 663
 664DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_cache_cluster_dealloc);
 665
 666DEFINE_OCFS2_INT_INT_EVENT(ocfs2_run_deallocs);
 667
 668TRACE_EVENT(ocfs2_cache_block_dealloc,
 669        TP_PROTO(int type, int slot, unsigned long long suballoc,
 670                 unsigned long long blkno, unsigned int bit),
 671        TP_ARGS(type, slot, suballoc, blkno, bit),
 672        TP_STRUCT__entry(
 673                __field(int, type)
 674                __field(int, slot)
 675                __field(unsigned long long, suballoc)
 676                __field(unsigned long long, blkno)
 677                __field(unsigned int, bit)
 678        ),
 679        TP_fast_assign(
 680                __entry->type = type;
 681                __entry->slot = slot;
 682                __entry->suballoc = suballoc;
 683                __entry->blkno = blkno;
 684                __entry->bit = bit;
 685        ),
 686        TP_printk("%d %d %llu %llu %u",
 687                  __entry->type, __entry->slot, __entry->suballoc,
 688                  __entry->blkno, __entry->bit)
 689);
 690
 691TRACE_EVENT(ocfs2_trim_extent,
 692        TP_PROTO(struct super_block *sb, unsigned long long blk,
 693                 unsigned long long count),
 694        TP_ARGS(sb, blk, count),
 695        TP_STRUCT__entry(
 696                __field(int, dev_major)
 697                __field(int, dev_minor)
 698                __field(unsigned long long, blk)
 699                __field(__u64,  count)
 700        ),
 701        TP_fast_assign(
 702                __entry->dev_major = MAJOR(sb->s_dev);
 703                __entry->dev_minor = MINOR(sb->s_dev);
 704                __entry->blk = blk;
 705                __entry->count = count;
 706        ),
 707        TP_printk("%d %d %llu %llu",
 708                  __entry->dev_major, __entry->dev_minor,
 709                  __entry->blk, __entry->count)
 710);
 711
 712DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_trim_group);
 713
 714DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_trim_fs);
 715
 716/* End of trace events for fs/ocfs2/alloc.c. */
 717
 718/* Trace events for fs/ocfs2/localalloc.c. */
 719
 720DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_la_set_sizes);
 721
 722DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_alloc_should_use_local);
 723
 724DEFINE_OCFS2_INT_EVENT(ocfs2_load_local_alloc);
 725
 726DEFINE_OCFS2_INT_EVENT(ocfs2_begin_local_alloc_recovery);
 727
 728DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_reserve_local_alloc_bits);
 729
 730DEFINE_OCFS2_UINT_EVENT(ocfs2_local_alloc_count_bits);
 731
 732DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits_search_bitmap);
 733
 734DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits);
 735
 736DEFINE_OCFS2_INT_INT_EVENT(ocfs2_sync_local_to_main);
 737
 738TRACE_EVENT(ocfs2_sync_local_to_main_free,
 739        TP_PROTO(int count, int bit, unsigned long long start_blk,
 740                 unsigned long long blkno),
 741        TP_ARGS(count, bit, start_blk, blkno),
 742        TP_STRUCT__entry(
 743                __field(int, count)
 744                __field(int, bit)
 745                __field(unsigned long long, start_blk)
 746                __field(unsigned long long, blkno)
 747        ),
 748        TP_fast_assign(
 749                __entry->count = count;
 750                __entry->bit = bit;
 751                __entry->start_blk = start_blk;
 752                __entry->blkno = blkno;
 753        ),
 754        TP_printk("%d %d %llu %llu",
 755                  __entry->count, __entry->bit, __entry->start_blk,
 756                  __entry->blkno)
 757);
 758
 759DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_new_window);
 760
 761DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_local_alloc_new_window_result);
 762
 763/* End of trace events for fs/ocfs2/localalloc.c. */
 764
 765/* Trace events for fs/ocfs2/resize.c. */
 766
 767DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_update_last_group_and_inode);
 768
 769DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_group_extend);
 770
 771DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_group_add);
 772
 773/* End of trace events for fs/ocfs2/resize.c. */
 774
 775/* Trace events for fs/ocfs2/suballoc.c. */
 776
 777DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_group_descriptor);
 778
 779DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_contig);
 780
 781DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_discontig);
 782
 783DEFINE_OCFS2_ULL_EVENT(ocfs2_block_group_alloc);
 784
 785DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_nospc);
 786
 787DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_no_new_group);
 788
 789DEFINE_OCFS2_ULL_EVENT(ocfs2_reserve_new_inode_new_group);
 790
 791DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_set_bits);
 792
 793TRACE_EVENT(ocfs2_relink_block_group,
 794        TP_PROTO(unsigned long long i_blkno, unsigned int chain,
 795                 unsigned long long bg_blkno,
 796                 unsigned long long prev_blkno),
 797        TP_ARGS(i_blkno, chain, bg_blkno, prev_blkno),
 798        TP_STRUCT__entry(
 799                __field(unsigned long long, i_blkno)
 800                __field(unsigned int, chain)
 801                __field(unsigned long long, bg_blkno)
 802                __field(unsigned long long, prev_blkno)
 803        ),
 804        TP_fast_assign(
 805                __entry->i_blkno = i_blkno;
 806                __entry->chain = chain;
 807                __entry->bg_blkno = bg_blkno;
 808                __entry->prev_blkno = prev_blkno;
 809        ),
 810        TP_printk("%llu %u %llu %llu",
 811                  __entry->i_blkno, __entry->chain, __entry->bg_blkno,
 812                  __entry->prev_blkno)
 813);
 814
 815DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_cluster_group_search_wrong_max_bits);
 816
 817DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_cluster_group_search_max_block);
 818
 819DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_block_group_search_max_block);
 820
 821DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_search_chain_begin);
 822
 823DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_succ);
 824
 825DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_end);
 826
 827DEFINE_OCFS2_UINT_EVENT(ocfs2_claim_suballoc_bits);
 828
 829DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_claim_new_inode_at_loc);
 830
 831DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_clear_bits);
 832
 833TRACE_EVENT(ocfs2_free_suballoc_bits,
 834        TP_PROTO(unsigned long long inode, unsigned long long group,
 835                 unsigned int start_bit, unsigned int count),
 836        TP_ARGS(inode, group, start_bit, count),
 837        TP_STRUCT__entry(
 838                __field(unsigned long long, inode)
 839                __field(unsigned long long, group)
 840                __field(unsigned int, start_bit)
 841                __field(unsigned int, count)
 842        ),
 843        TP_fast_assign(
 844                __entry->inode = inode;
 845                __entry->group = group;
 846                __entry->start_bit = start_bit;
 847                __entry->count = count;
 848        ),
 849        TP_printk("%llu %llu %u %u", __entry->inode, __entry->group,
 850                  __entry->start_bit, __entry->count)
 851);
 852
 853TRACE_EVENT(ocfs2_free_clusters,
 854        TP_PROTO(unsigned long long bg_blkno, unsigned long long start_blk,
 855                 unsigned int start_bit, unsigned int count),
 856        TP_ARGS(bg_blkno, start_blk, start_bit, count),
 857        TP_STRUCT__entry(
 858                __field(unsigned long long, bg_blkno)
 859                __field(unsigned long long, start_blk)
 860                __field(unsigned int, start_bit)
 861                __field(unsigned int, count)
 862        ),
 863        TP_fast_assign(
 864                __entry->bg_blkno = bg_blkno;
 865                __entry->start_blk = start_blk;
 866                __entry->start_bit = start_bit;
 867                __entry->count = count;
 868        ),
 869        TP_printk("%llu %llu %u %u", __entry->bg_blkno, __entry->start_blk,
 870                  __entry->start_bit, __entry->count)
 871);
 872
 873DEFINE_OCFS2_ULL_EVENT(ocfs2_get_suballoc_slot_bit);
 874
 875DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_test_suballoc_bit);
 876
 877DEFINE_OCFS2_ULL_EVENT(ocfs2_test_inode_bit);
 878
 879/* End of trace events for fs/ocfs2/suballoc.c. */
 880
 881/* Trace events for fs/ocfs2/refcounttree.c. */
 882
 883DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_refcount_block);
 884
 885DEFINE_OCFS2_ULL_EVENT(ocfs2_purge_refcount_trees);
 886
 887DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree);
 888
 889DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree_blkno);
 890
 891DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_change_refcount_rec);
 892
 893DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_expand_inline_ref_root);
 894
 895DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_divide_leaf_refcount_block);
 896
 897DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_new_leaf_refcount_block);
 898
 899DECLARE_EVENT_CLASS(ocfs2__refcount_tree_ops,
 900        TP_PROTO(unsigned long long blkno, int index,
 901                 unsigned long long cpos,
 902                 unsigned int clusters, unsigned int refcount),
 903        TP_ARGS(blkno, index, cpos, clusters, refcount),
 904        TP_STRUCT__entry(
 905                __field(unsigned long long, blkno)
 906                __field(int, index)
 907                __field(unsigned long long, cpos)
 908                __field(unsigned int, clusters)
 909                __field(unsigned int, refcount)
 910        ),
 911        TP_fast_assign(
 912                __entry->blkno = blkno;
 913                __entry->index = index;
 914                __entry->cpos = cpos;
 915                __entry->clusters = clusters;
 916                __entry->refcount = refcount;
 917        ),
 918        TP_printk("%llu %d %llu %u %u", __entry->blkno, __entry->index,
 919                  __entry->cpos, __entry->clusters, __entry->refcount)
 920);
 921
 922#define DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(name)      \
 923DEFINE_EVENT(ocfs2__refcount_tree_ops, name,            \
 924        TP_PROTO(unsigned long long blkno, int index,   \
 925                 unsigned long long cpos,               \
 926                 unsigned int count, unsigned int refcount),    \
 927        TP_ARGS(blkno, index, cpos, count, refcount))
 928
 929DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_insert_refcount_rec);
 930
 931TRACE_EVENT(ocfs2_split_refcount_rec,
 932        TP_PROTO(unsigned long long cpos,
 933                 unsigned int clusters, unsigned int refcount,
 934                 unsigned long long split_cpos,
 935                 unsigned int split_clusters, unsigned int split_refcount),
 936        TP_ARGS(cpos, clusters, refcount,
 937                split_cpos, split_clusters, split_refcount),
 938        TP_STRUCT__entry(
 939                __field(unsigned long long, cpos)
 940                __field(unsigned int, clusters)
 941                __field(unsigned int, refcount)
 942                __field(unsigned long long, split_cpos)
 943                __field(unsigned int, split_clusters)
 944                __field(unsigned int, split_refcount)
 945        ),
 946        TP_fast_assign(
 947                __entry->cpos = cpos;
 948                __entry->clusters = clusters;
 949                __entry->refcount = refcount;
 950                __entry->split_cpos = split_cpos;
 951                __entry->split_clusters = split_clusters;
 952                __entry->split_refcount = split_refcount;
 953        ),
 954        TP_printk("%llu %u %u %llu %u %u",
 955                  __entry->cpos, __entry->clusters, __entry->refcount,
 956                  __entry->split_cpos, __entry->split_clusters,
 957                  __entry->split_refcount)
 958);
 959
 960DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_split_refcount_rec_insert);
 961
 962DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_increase_refcount_begin);
 963
 964DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_change);
 965
 966DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_increase_refcount_insert);
 967
 968DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_split);
 969
 970DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_remove_refcount_extent);
 971
 972DEFINE_OCFS2_ULL_EVENT(ocfs2_restore_refcount_block);
 973
 974DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_decrease_refcount_rec);
 975
 976TRACE_EVENT(ocfs2_decrease_refcount,
 977        TP_PROTO(unsigned long long owner,
 978                 unsigned long long cpos,
 979                 unsigned int len, int delete),
 980        TP_ARGS(owner, cpos, len, delete),
 981        TP_STRUCT__entry(
 982                __field(unsigned long long, owner)
 983                __field(unsigned long long, cpos)
 984                __field(unsigned int, len)
 985                __field(int, delete)
 986        ),
 987        TP_fast_assign(
 988                __entry->owner = owner;
 989                __entry->cpos = cpos;
 990                __entry->len = len;
 991                __entry->delete = delete;
 992        ),
 993        TP_printk("%llu %llu %u %d",
 994                  __entry->owner, __entry->cpos, __entry->len, __entry->delete)
 995);
 996
 997DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_mark_extent_refcounted);
 998
 999DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_calc_refcount_meta_credits);
1000
1001TRACE_EVENT(ocfs2_calc_refcount_meta_credits_iterate,
1002        TP_PROTO(int recs_add, unsigned long long cpos,
1003                 unsigned int clusters, unsigned long long r_cpos,
1004                 unsigned int r_clusters, unsigned int refcount, int index),
1005        TP_ARGS(recs_add, cpos, clusters, r_cpos, r_clusters, refcount, index),
1006        TP_STRUCT__entry(
1007                __field(int, recs_add)
1008                __field(unsigned long long, cpos)
1009                __field(unsigned int, clusters)
1010                __field(unsigned long long, r_cpos)
1011                __field(unsigned int, r_clusters)
1012                __field(unsigned int, refcount)
1013                __field(int, index)
1014        ),
1015        TP_fast_assign(
1016                __entry->recs_add = recs_add;
1017                __entry->cpos = cpos;
1018                __entry->clusters = clusters;
1019                __entry->r_cpos = r_cpos;
1020                __entry->r_clusters = r_clusters;
1021                __entry->refcount = refcount;
1022                __entry->index = index;
1023        ),
1024        TP_printk("%d %llu %u %llu %u %u %d",
1025                  __entry->recs_add, __entry->cpos, __entry->clusters,
1026                  __entry->r_cpos, __entry->r_clusters,
1027                  __entry->refcount, __entry->index)
1028);
1029
1030DEFINE_OCFS2_INT_INT_EVENT(ocfs2_add_refcount_flag);
1031
1032DEFINE_OCFS2_INT_INT_EVENT(ocfs2_prepare_refcount_change_for_del);
1033
1034DEFINE_OCFS2_INT_INT_EVENT(ocfs2_lock_refcount_allocators);
1035
1036DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_page);
1037
1038DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_jbd);
1039
1040TRACE_EVENT(ocfs2_clear_ext_refcount,
1041        TP_PROTO(unsigned long long ino, unsigned int cpos,
1042                 unsigned int len, unsigned int p_cluster,
1043                 unsigned int ext_flags),
1044        TP_ARGS(ino, cpos, len, p_cluster, ext_flags),
1045        TP_STRUCT__entry(
1046                __field(unsigned long long, ino)
1047                __field(unsigned int, cpos)
1048                __field(unsigned int, len)
1049                __field(unsigned int, p_cluster)
1050                __field(unsigned int, ext_flags)
1051        ),
1052        TP_fast_assign(
1053                __entry->ino = ino;
1054                __entry->cpos = cpos;
1055                __entry->len = len;
1056                __entry->p_cluster = p_cluster;
1057                __entry->ext_flags = ext_flags;
1058        ),
1059        TP_printk("%llu %u %u %u %u",
1060                  __entry->ino, __entry->cpos, __entry->len,
1061                  __entry->p_cluster, __entry->ext_flags)
1062);
1063
1064TRACE_EVENT(ocfs2_replace_clusters,
1065        TP_PROTO(unsigned long long ino, unsigned int cpos,
1066                 unsigned int old, unsigned int new, unsigned int len,
1067                 unsigned int ext_flags),
1068        TP_ARGS(ino, cpos, old, new, len, ext_flags),
1069        TP_STRUCT__entry(
1070                __field(unsigned long long, ino)
1071                __field(unsigned int, cpos)
1072                __field(unsigned int, old)
1073                __field(unsigned int, new)
1074                __field(unsigned int, len)
1075                __field(unsigned int, ext_flags)
1076        ),
1077        TP_fast_assign(
1078                __entry->ino = ino;
1079                __entry->cpos = cpos;
1080                __entry->old = old;
1081                __entry->new = new;
1082                __entry->len = len;
1083                __entry->ext_flags = ext_flags;
1084        ),
1085        TP_printk("%llu %u %u %u %u %u",
1086                  __entry->ino, __entry->cpos, __entry->old, __entry->new,
1087                  __entry->len, __entry->ext_flags)
1088);
1089
1090DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_make_clusters_writable);
1091
1092TRACE_EVENT(ocfs2_refcount_cow_hunk,
1093        TP_PROTO(unsigned long long ino, unsigned int cpos,
1094                 unsigned int write_len, unsigned int max_cpos,
1095                 unsigned int cow_start, unsigned int cow_len),
1096        TP_ARGS(ino, cpos, write_len, max_cpos, cow_start, cow_len),
1097        TP_STRUCT__entry(
1098                __field(unsigned long long, ino)
1099                __field(unsigned int, cpos)
1100                __field(unsigned int, write_len)
1101                __field(unsigned int, max_cpos)
1102                __field(unsigned int, cow_start)
1103                __field(unsigned int, cow_len)
1104        ),
1105        TP_fast_assign(
1106                __entry->ino = ino;
1107                __entry->cpos = cpos;
1108                __entry->write_len = write_len;
1109                __entry->max_cpos = max_cpos;
1110                __entry->cow_start = cow_start;
1111                __entry->cow_len = cow_len;
1112        ),
1113        TP_printk("%llu %u %u %u %u %u",
1114                  __entry->ino, __entry->cpos, __entry->write_len,
1115                  __entry->max_cpos, __entry->cow_start, __entry->cow_len)
1116);
1117
1118/* End of trace events for fs/ocfs2/refcounttree.c. */
1119
1120/* Trace events for fs/ocfs2/aops.c. */
1121
1122DECLARE_EVENT_CLASS(ocfs2__get_block,
1123        TP_PROTO(unsigned long long ino, unsigned long long iblock,
1124                 void *bh_result, int create),
1125        TP_ARGS(ino, iblock, bh_result, create),
1126        TP_STRUCT__entry(
1127                __field(unsigned long long, ino)
1128                __field(unsigned long long, iblock)
1129                __field(void *, bh_result)
1130                __field(int, create)
1131        ),
1132        TP_fast_assign(
1133                __entry->ino = ino;
1134                __entry->iblock = iblock;
1135                __entry->bh_result = bh_result;
1136                __entry->create = create;
1137        ),
1138        TP_printk("%llu %llu %p %d",
1139                  __entry->ino, __entry->iblock,
1140                  __entry->bh_result, __entry->create)
1141);
1142
1143#define DEFINE_OCFS2_GET_BLOCK_EVENT(name)      \
1144DEFINE_EVENT(ocfs2__get_block, name,    \
1145        TP_PROTO(unsigned long long ino, unsigned long long iblock,     \
1146                 void *bh_result, int create),  \
1147        TP_ARGS(ino, iblock, bh_result, create))
1148
1149DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_symlink_get_block);
1150
1151DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_get_block);
1152
1153DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_get_block_end);
1154
1155DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_readpage);
1156
1157DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_writepage);
1158
1159DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_bmap);
1160
1161TRACE_EVENT(ocfs2_try_to_write_inline_data,
1162        TP_PROTO(unsigned long long ino, unsigned int len,
1163                 unsigned long long pos, unsigned int flags),
1164        TP_ARGS(ino, len, pos, flags),
1165        TP_STRUCT__entry(
1166                __field(unsigned long long, ino)
1167                __field(unsigned int, len)
1168                __field(unsigned long long, pos)
1169                __field(unsigned int, flags)
1170        ),
1171        TP_fast_assign(
1172                __entry->ino = ino;
1173                __entry->len = len;
1174                __entry->pos = pos;
1175                __entry->flags = flags;
1176        ),
1177        TP_printk("%llu %u %llu 0x%x",
1178                  __entry->ino, __entry->len, __entry->pos, __entry->flags)
1179);
1180
1181TRACE_EVENT(ocfs2_write_begin_nolock,
1182        TP_PROTO(unsigned long long ino,
1183                 long long i_size, unsigned int i_clusters,
1184                 unsigned long long pos, unsigned int len,
1185                 unsigned int flags, void *page,
1186                 unsigned int clusters, unsigned int extents_to_split),
1187        TP_ARGS(ino, i_size, i_clusters, pos, len, flags,
1188                page, clusters, extents_to_split),
1189        TP_STRUCT__entry(
1190                __field(unsigned long long, ino)
1191                __field(long long, i_size)
1192                __field(unsigned int, i_clusters)
1193                __field(unsigned long long, pos)
1194                __field(unsigned int, len)
1195                __field(unsigned int, flags)
1196                __field(void *, page)
1197                __field(unsigned int, clusters)
1198                __field(unsigned int, extents_to_split)
1199        ),
1200        TP_fast_assign(
1201                __entry->ino = ino;
1202                __entry->i_size = i_size;
1203                __entry->i_clusters = i_clusters;
1204                __entry->pos = pos;
1205                __entry->len = len;
1206                __entry->flags = flags;
1207                __entry->page = page;
1208                __entry->clusters = clusters;
1209                __entry->extents_to_split = extents_to_split;
1210        ),
1211        TP_printk("%llu %lld %u %llu %u %u %p %u %u",
1212                  __entry->ino, __entry->i_size, __entry->i_clusters,
1213                  __entry->pos, __entry->len,
1214                  __entry->flags, __entry->page, __entry->clusters,
1215                  __entry->extents_to_split)
1216);
1217
1218TRACE_EVENT(ocfs2_write_end_inline,
1219        TP_PROTO(unsigned long long ino,
1220                 unsigned long long pos, unsigned int copied,
1221                 unsigned int id_count, unsigned int features),
1222        TP_ARGS(ino, pos, copied, id_count, features),
1223        TP_STRUCT__entry(
1224                __field(unsigned long long, ino)
1225                __field(unsigned long long, pos)
1226                __field(unsigned int, copied)
1227                __field(unsigned int, id_count)
1228                __field(unsigned int, features)
1229        ),
1230        TP_fast_assign(
1231                __entry->ino = ino;
1232                __entry->pos = pos;
1233                __entry->copied = copied;
1234                __entry->id_count = id_count;
1235                __entry->features = features;
1236        ),
1237        TP_printk("%llu %llu %u %u %u",
1238                  __entry->ino, __entry->pos, __entry->copied,
1239                  __entry->id_count, __entry->features)
1240);
1241
1242/* End of trace events for fs/ocfs2/aops.c. */
1243
1244/* Trace events for fs/ocfs2/mmap.c. */
1245
1246TRACE_EVENT(ocfs2_fault,
1247        TP_PROTO(unsigned long long ino,
1248                 void *area, void *page, unsigned long pgoff),
1249        TP_ARGS(ino, area, page, pgoff),
1250        TP_STRUCT__entry(
1251                __field(unsigned long long, ino)
1252                __field(void *, area)
1253                __field(void *, page)
1254                __field(unsigned long, pgoff)
1255        ),
1256        TP_fast_assign(
1257                __entry->ino = ino;
1258                __entry->area = area;
1259                __entry->page = page;
1260                __entry->pgoff = pgoff;
1261        ),
1262        TP_printk("%llu %p %p %lu",
1263                  __entry->ino, __entry->area, __entry->page, __entry->pgoff)
1264);
1265
1266/* End of trace events for fs/ocfs2/mmap.c. */
1267
1268/* Trace events for fs/ocfs2/file.c. */
1269
1270DECLARE_EVENT_CLASS(ocfs2__file_ops,
1271        TP_PROTO(void *inode, void *file, void *dentry,
1272                 unsigned long long ino,
1273                 unsigned int d_len, const unsigned char *d_name,
1274                 unsigned long long para),
1275        TP_ARGS(inode, file, dentry, ino, d_len, d_name, para),
1276        TP_STRUCT__entry(
1277                __field(void *, inode)
1278                __field(void *, file)
1279                __field(void *, dentry)
1280                __field(unsigned long long, ino)
1281                __field(unsigned int, d_len)
1282                __string(d_name, d_name)
1283                __field(unsigned long long, para)
1284        ),
1285        TP_fast_assign(
1286                __entry->inode = inode;
1287                __entry->file = file;
1288                __entry->dentry = dentry;
1289                __entry->ino = ino;
1290                __entry->d_len = d_len;
1291                __assign_str(d_name, d_name);
1292                __entry->para = para;
1293        ),
1294        TP_printk("%p %p %p %llu %llu %.*s", __entry->inode, __entry->file,
1295                  __entry->dentry, __entry->ino, __entry->para,
1296                  __entry->d_len, __get_str(d_name))
1297);
1298
1299#define DEFINE_OCFS2_FILE_OPS(name)                             \
1300DEFINE_EVENT(ocfs2__file_ops, name,                             \
1301TP_PROTO(void *inode, void *file, void *dentry,                 \
1302         unsigned long long ino,                                \
1303         unsigned int d_len, const unsigned char *d_name,       \
1304         unsigned long long mode),                              \
1305        TP_ARGS(inode, file, dentry, ino, d_len, d_name, mode))
1306
1307DEFINE_OCFS2_FILE_OPS(ocfs2_file_open);
1308
1309DEFINE_OCFS2_FILE_OPS(ocfs2_file_release);
1310
1311DEFINE_OCFS2_FILE_OPS(ocfs2_sync_file);
1312
1313DEFINE_OCFS2_FILE_OPS(ocfs2_file_aio_write);
1314
1315DEFINE_OCFS2_FILE_OPS(ocfs2_file_splice_write);
1316
1317DEFINE_OCFS2_FILE_OPS(ocfs2_file_aio_read);
1318
1319DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_truncate_file);
1320
1321DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_truncate_file_error);
1322
1323TRACE_EVENT(ocfs2_extend_allocation,
1324        TP_PROTO(unsigned long long ip_blkno, unsigned long long size,
1325                 unsigned int clusters, unsigned int clusters_to_add,
1326                 int why, int restart_func),
1327        TP_ARGS(ip_blkno, size, clusters, clusters_to_add, why, restart_func),
1328        TP_STRUCT__entry(
1329                __field(unsigned long long, ip_blkno)
1330                __field(unsigned long long, size)
1331                __field(unsigned int, clusters)
1332                __field(unsigned int, clusters_to_add)
1333                __field(int, why)
1334                __field(int, restart_func)
1335        ),
1336        TP_fast_assign(
1337                __entry->ip_blkno = ip_blkno;
1338                __entry->size = size;
1339                __entry->clusters = clusters;
1340                __entry->clusters_to_add = clusters_to_add;
1341                __entry->why = why;
1342                __entry->restart_func = restart_func;
1343        ),
1344        TP_printk("%llu %llu %u %u %d %d",
1345                  __entry->ip_blkno, __entry->size, __entry->clusters,
1346                  __entry->clusters_to_add, __entry->why, __entry->restart_func)
1347);
1348
1349TRACE_EVENT(ocfs2_extend_allocation_end,
1350        TP_PROTO(unsigned long long ino,
1351                 unsigned int di_clusters, unsigned long long di_size,
1352                 unsigned int ip_clusters, unsigned long long i_size),
1353        TP_ARGS(ino, di_clusters, di_size, ip_clusters, i_size),
1354        TP_STRUCT__entry(
1355                __field(unsigned long long, ino)
1356                __field(unsigned int, di_clusters)
1357                __field(unsigned long long, di_size)
1358                __field(unsigned int, ip_clusters)
1359                __field(unsigned long long, i_size)
1360        ),
1361        TP_fast_assign(
1362                __entry->ino = ino;
1363                __entry->di_clusters = di_clusters;
1364                __entry->di_size = di_size;
1365                __entry->ip_clusters = ip_clusters;
1366                __entry->i_size = i_size;
1367        ),
1368        TP_printk("%llu %u %llu %u %llu", __entry->ino, __entry->di_clusters,
1369                  __entry->di_size, __entry->ip_clusters, __entry->i_size)
1370);
1371
1372TRACE_EVENT(ocfs2_write_zero_page,
1373        TP_PROTO(unsigned long long ino,
1374                 unsigned long long abs_from, unsigned long long abs_to,
1375                 unsigned long index, unsigned int zero_from,
1376                 unsigned int zero_to),
1377        TP_ARGS(ino, abs_from, abs_to, index, zero_from, zero_to),
1378        TP_STRUCT__entry(
1379                __field(unsigned long long, ino)
1380                __field(unsigned long long, abs_from)
1381                __field(unsigned long long, abs_to)
1382                __field(unsigned long, index)
1383                __field(unsigned int, zero_from)
1384                __field(unsigned int, zero_to)
1385        ),
1386        TP_fast_assign(
1387                __entry->ino = ino;
1388                __entry->abs_from = abs_from;
1389                __entry->abs_to = abs_to;
1390                __entry->index = index;
1391                __entry->zero_from = zero_from;
1392                __entry->zero_to = zero_to;
1393        ),
1394        TP_printk("%llu %llu %llu %lu %u %u", __entry->ino,
1395                  __entry->abs_from, __entry->abs_to,
1396                  __entry->index, __entry->zero_from, __entry->zero_to)
1397);
1398
1399DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend_range);
1400
1401DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend);
1402
1403TRACE_EVENT(ocfs2_setattr,
1404        TP_PROTO(void *inode, void *dentry,
1405                 unsigned long long ino,
1406                 unsigned int d_len, const unsigned char *d_name,
1407                 unsigned int ia_valid, unsigned int ia_mode,
1408                 unsigned int ia_uid, unsigned int ia_gid),
1409        TP_ARGS(inode, dentry, ino, d_len, d_name,
1410                ia_valid, ia_mode, ia_uid, ia_gid),
1411        TP_STRUCT__entry(
1412                __field(void *, inode)
1413                __field(void *, dentry)
1414                __field(unsigned long long, ino)
1415                __field(unsigned int, d_len)
1416                __string(d_name, d_name)
1417                __field(unsigned int, ia_valid)
1418                __field(unsigned int, ia_mode)
1419                __field(unsigned int, ia_uid)
1420                __field(unsigned int, ia_gid)
1421        ),
1422        TP_fast_assign(
1423                __entry->inode = inode;
1424                __entry->dentry = dentry;
1425                __entry->ino = ino;
1426                __entry->d_len = d_len;
1427                __assign_str(d_name, d_name);
1428                __entry->ia_valid = ia_valid;
1429                __entry->ia_mode = ia_mode;
1430                __entry->ia_uid = ia_uid;
1431                __entry->ia_gid = ia_gid;
1432        ),
1433        TP_printk("%p %p %llu %.*s %u %u %u %u", __entry->inode,
1434                  __entry->dentry, __entry->ino, __entry->d_len,
1435                  __get_str(d_name), __entry->ia_valid, __entry->ia_mode,
1436                  __entry->ia_uid, __entry->ia_gid)
1437);
1438
1439DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_write_remove_suid);
1440
1441DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_partial_clusters);
1442
1443DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range1);
1444
1445DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range2);
1446
1447DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_remove_inode_range);
1448
1449TRACE_EVENT(ocfs2_prepare_inode_for_write,
1450        TP_PROTO(unsigned long long ino, unsigned long long saved_pos,
1451                 unsigned long count),
1452        TP_ARGS(ino, saved_pos, count),
1453        TP_STRUCT__entry(
1454                __field(unsigned long long, ino)
1455                __field(unsigned long long, saved_pos)
1456                __field(unsigned long, count)
1457        ),
1458        TP_fast_assign(
1459                __entry->ino = ino;
1460                __entry->saved_pos = saved_pos;
1461                __entry->count = count;
1462        ),
1463        TP_printk("%llu %llu %lu", __entry->ino,
1464                  __entry->saved_pos, __entry->count)
1465);
1466
1467DEFINE_OCFS2_INT_EVENT(generic_file_aio_read_ret);
1468
1469/* End of trace events for fs/ocfs2/file.c. */
1470
1471/* Trace events for fs/ocfs2/inode.c. */
1472
1473TRACE_EVENT(ocfs2_iget_begin,
1474        TP_PROTO(unsigned long long ino, unsigned int flags, int sysfile_type),
1475        TP_ARGS(ino, flags, sysfile_type),
1476        TP_STRUCT__entry(
1477                __field(unsigned long long, ino)
1478                __field(unsigned int, flags)
1479                __field(int, sysfile_type)
1480        ),
1481        TP_fast_assign(
1482                __entry->ino = ino;
1483                __entry->flags = flags;
1484                __entry->sysfile_type = sysfile_type;
1485        ),
1486        TP_printk("%llu %u %d", __entry->ino,
1487                  __entry->flags, __entry->sysfile_type)
1488);
1489
1490DEFINE_OCFS2_ULL_EVENT(ocfs2_iget5_locked);
1491
1492TRACE_EVENT(ocfs2_iget_end,
1493        TP_PROTO(void *inode, unsigned long long ino),
1494        TP_ARGS(inode, ino),
1495        TP_STRUCT__entry(
1496                __field(void *, inode)
1497                __field(unsigned long long, ino)
1498        ),
1499        TP_fast_assign(
1500                __entry->inode = inode;
1501                __entry->ino = ino;
1502        ),
1503        TP_printk("%p %llu", __entry->inode, __entry->ino)
1504);
1505
1506TRACE_EVENT(ocfs2_find_actor,
1507        TP_PROTO(void *inode, unsigned long long ino,
1508                 void *args,  unsigned long long fi_blkno),
1509        TP_ARGS(inode, ino, args, fi_blkno),
1510        TP_STRUCT__entry(
1511                __field(void *, inode)
1512                __field(unsigned long long, ino)
1513                __field(void *, args)
1514                __field(unsigned long long, fi_blkno)
1515        ),
1516        TP_fast_assign(
1517                __entry->inode = inode;
1518                __entry->ino = ino;
1519                __entry->args = args;
1520                __entry->fi_blkno = fi_blkno;
1521        ),
1522        TP_printk("%p %llu %p %llu", __entry->inode, __entry->ino,
1523                  __entry->args, __entry->fi_blkno)
1524);
1525
1526DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_populate_inode);
1527
1528DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_read_locked_inode);
1529
1530DEFINE_OCFS2_INT_INT_EVENT(ocfs2_check_orphan_recovery_state);
1531
1532DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_inode_block);
1533DEFINE_OCFS2_ULL_EVENT(ocfs2_filecheck_validate_inode_block);
1534DEFINE_OCFS2_ULL_EVENT(ocfs2_filecheck_repair_inode_block);
1535
1536TRACE_EVENT(ocfs2_inode_is_valid_to_delete,
1537        TP_PROTO(void *task, void *dc_task, unsigned long long ino,
1538                 unsigned int flags),
1539        TP_ARGS(task, dc_task, ino, flags),
1540        TP_STRUCT__entry(
1541                __field(void *, task)
1542                __field(void *, dc_task)
1543                __field(unsigned long long, ino)
1544                __field(unsigned int, flags)
1545        ),
1546        TP_fast_assign(
1547                __entry->task = task;
1548                __entry->dc_task = dc_task;
1549                __entry->ino = ino;
1550                __entry->flags = flags;
1551        ),
1552        TP_printk("%p %p %llu %u", __entry->task, __entry->dc_task,
1553                  __entry->ino, __entry->flags)
1554);
1555
1556DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_query_inode_wipe_begin);
1557
1558DEFINE_OCFS2_UINT_EVENT(ocfs2_query_inode_wipe_succ);
1559
1560DEFINE_OCFS2_INT_INT_EVENT(ocfs2_query_inode_wipe_end);
1561
1562DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_cleanup_delete_inode);
1563
1564DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_delete_inode);
1565
1566DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_clear_inode);
1567
1568DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_drop_inode);
1569
1570TRACE_EVENT(ocfs2_inode_revalidate,
1571        TP_PROTO(void *inode, unsigned long long ino,
1572                 unsigned int flags),
1573        TP_ARGS(inode, ino, flags),
1574        TP_STRUCT__entry(
1575                __field(void *, inode)
1576                __field(unsigned long long, ino)
1577                __field(unsigned int, flags)
1578        ),
1579        TP_fast_assign(
1580                __entry->inode = inode;
1581                __entry->ino = ino;
1582                __entry->flags = flags;
1583        ),
1584        TP_printk("%p %llu %u", __entry->inode, __entry->ino, __entry->flags)
1585);
1586
1587DEFINE_OCFS2_ULL_EVENT(ocfs2_mark_inode_dirty);
1588
1589/* End of trace events for fs/ocfs2/inode.c. */
1590
1591/* Trace events for fs/ocfs2/extent_map.c. */
1592
1593TRACE_EVENT(ocfs2_read_virt_blocks,
1594        TP_PROTO(void *inode, unsigned long long vblock, int nr,
1595                 void *bhs, unsigned int flags, void *validate),
1596        TP_ARGS(inode, vblock, nr, bhs, flags, validate),
1597        TP_STRUCT__entry(
1598                __field(void *, inode)
1599                __field(unsigned long long, vblock)
1600                __field(int, nr)
1601                __field(void *, bhs)
1602                __field(unsigned int, flags)
1603                __field(void *, validate)
1604        ),
1605        TP_fast_assign(
1606                __entry->inode = inode;
1607                __entry->vblock = vblock;
1608                __entry->nr = nr;
1609                __entry->bhs = bhs;
1610                __entry->flags = flags;
1611                __entry->validate = validate;
1612        ),
1613        TP_printk("%p %llu %d %p %x %p", __entry->inode, __entry->vblock,
1614                  __entry->nr, __entry->bhs, __entry->flags, __entry->validate)
1615);
1616
1617/* End of trace events for fs/ocfs2/extent_map.c. */
1618
1619/* Trace events for fs/ocfs2/slot_map.c. */
1620
1621DEFINE_OCFS2_UINT_EVENT(ocfs2_refresh_slot_info);
1622
1623DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_map_slot_buffers);
1624
1625DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_map_slot_buffers_block);
1626
1627DEFINE_OCFS2_INT_EVENT(ocfs2_find_slot);
1628
1629/* End of trace events for fs/ocfs2/slot_map.c. */
1630
1631/* Trace events for fs/ocfs2/heartbeat.c. */
1632
1633DEFINE_OCFS2_INT_EVENT(ocfs2_do_node_down);
1634
1635/* End of trace events for fs/ocfs2/heartbeat.c. */
1636
1637/* Trace events for fs/ocfs2/super.c. */
1638
1639TRACE_EVENT(ocfs2_remount,
1640        TP_PROTO(unsigned long s_flags, unsigned long osb_flags, int flags),
1641        TP_ARGS(s_flags, osb_flags, flags),
1642        TP_STRUCT__entry(
1643                __field(unsigned long, s_flags)
1644                __field(unsigned long, osb_flags)
1645                __field(int, flags)
1646        ),
1647        TP_fast_assign(
1648                __entry->s_flags = s_flags;
1649                __entry->osb_flags = osb_flags;
1650                __entry->flags = flags;
1651        ),
1652        TP_printk("%lu %lu %d", __entry->s_flags,
1653                  __entry->osb_flags, __entry->flags)
1654);
1655
1656TRACE_EVENT(ocfs2_fill_super,
1657        TP_PROTO(void *sb, void *data, int silent),
1658        TP_ARGS(sb, data, silent),
1659        TP_STRUCT__entry(
1660                __field(void *, sb)
1661                __field(void *, data)
1662                __field(int, silent)
1663        ),
1664        TP_fast_assign(
1665                __entry->sb = sb;
1666                __entry->data = data;
1667                __entry->silent = silent;
1668        ),
1669        TP_printk("%p %p %d", __entry->sb,
1670                  __entry->data, __entry->silent)
1671);
1672
1673TRACE_EVENT(ocfs2_parse_options,
1674        TP_PROTO(int is_remount, char *options),
1675        TP_ARGS(is_remount, options),
1676        TP_STRUCT__entry(
1677                __field(int, is_remount)
1678                __string(options, options)
1679        ),
1680        TP_fast_assign(
1681                __entry->is_remount = is_remount;
1682                __assign_str(options, options);
1683        ),
1684        TP_printk("%d %s", __entry->is_remount, __get_str(options))
1685);
1686
1687DEFINE_OCFS2_POINTER_EVENT(ocfs2_put_super);
1688
1689TRACE_EVENT(ocfs2_statfs,
1690        TP_PROTO(void *sb, void *buf),
1691        TP_ARGS(sb, buf),
1692        TP_STRUCT__entry(
1693                __field(void *, sb)
1694                __field(void *, buf)
1695        ),
1696        TP_fast_assign(
1697                __entry->sb = sb;
1698                __entry->buf = buf;
1699        ),
1700        TP_printk("%p %p", __entry->sb, __entry->buf)
1701);
1702
1703DEFINE_OCFS2_POINTER_EVENT(ocfs2_dismount_volume);
1704
1705TRACE_EVENT(ocfs2_initialize_super,
1706        TP_PROTO(char *label, char *uuid_str, unsigned long long root_dir,
1707                 unsigned long long system_dir, int cluster_bits),
1708        TP_ARGS(label, uuid_str, root_dir, system_dir, cluster_bits),
1709        TP_STRUCT__entry(
1710                __string(label, label)
1711                __string(uuid_str, uuid_str)
1712                __field(unsigned long long, root_dir)
1713                __field(unsigned long long, system_dir)
1714                __field(int, cluster_bits)
1715        ),
1716        TP_fast_assign(
1717                __assign_str(label, label);
1718                __assign_str(uuid_str, uuid_str);
1719                __entry->root_dir = root_dir;
1720                __entry->system_dir = system_dir;
1721                __entry->cluster_bits = cluster_bits;
1722        ),
1723        TP_printk("%s %s %llu %llu %d", __get_str(label), __get_str(uuid_str),
1724                  __entry->root_dir, __entry->system_dir, __entry->cluster_bits)
1725);
1726
1727/* End of trace events for fs/ocfs2/super.c. */
1728
1729/* Trace events for fs/ocfs2/xattr.c. */
1730
1731DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_xattr_block);
1732
1733DEFINE_OCFS2_UINT_EVENT(ocfs2_xattr_extend_allocation);
1734
1735TRACE_EVENT(ocfs2_init_xattr_set_ctxt,
1736        TP_PROTO(const char *name, int meta, int clusters, int credits),
1737        TP_ARGS(name, meta, clusters, credits),
1738        TP_STRUCT__entry(
1739                __string(name, name)
1740                __field(int, meta)
1741                __field(int, clusters)
1742                __field(int, credits)
1743        ),
1744        TP_fast_assign(
1745                __assign_str(name, name);
1746                __entry->meta = meta;
1747                __entry->clusters = clusters;
1748                __entry->credits = credits;
1749        ),
1750        TP_printk("%s %d %d %d", __get_str(name), __entry->meta,
1751                  __entry->clusters, __entry->credits)
1752);
1753
1754DECLARE_EVENT_CLASS(ocfs2__xattr_find,
1755        TP_PROTO(unsigned long long ino, const char *name, int name_index,
1756                 unsigned int hash, unsigned long long location,
1757                 int xe_index),
1758        TP_ARGS(ino, name, name_index, hash, location, xe_index),
1759        TP_STRUCT__entry(
1760                __field(unsigned long long, ino)
1761                __string(name, name)
1762                __field(int, name_index)
1763                __field(unsigned int, hash)
1764                __field(unsigned long long, location)
1765                __field(int, xe_index)
1766        ),
1767        TP_fast_assign(
1768                __entry->ino = ino;
1769                __assign_str(name, name);
1770                __entry->name_index = name_index;
1771                __entry->hash = hash;
1772                __entry->location = location;
1773                __entry->xe_index = xe_index;
1774        ),
1775        TP_printk("%llu %s %d %u %llu %d", __entry->ino, __get_str(name),
1776                  __entry->name_index, __entry->hash, __entry->location,
1777                  __entry->xe_index)
1778);
1779
1780#define DEFINE_OCFS2_XATTR_FIND_EVENT(name)                                     \
1781DEFINE_EVENT(ocfs2__xattr_find, name,                                   \
1782TP_PROTO(unsigned long long ino, const char *name, int name_index,      \
1783         unsigned int hash, unsigned long long bucket,                  \
1784         int xe_index),                                                 \
1785        TP_ARGS(ino, name, name_index, hash, bucket, xe_index))
1786
1787DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_bucket_find);
1788
1789DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_index_block_find);
1790
1791DEFINE_OCFS2_XATTR_FIND_EVENT(ocfs2_xattr_index_block_find_rec);
1792
1793DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_iterate_xattr_buckets);
1794
1795DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_iterate_xattr_bucket);
1796
1797DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_cp_xattr_block_to_bucket_begin);
1798
1799DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_cp_xattr_block_to_bucket_end);
1800
1801DEFINE_OCFS2_ULL_EVENT(ocfs2_xattr_create_index_block_begin);
1802
1803DEFINE_OCFS2_ULL_EVENT(ocfs2_xattr_create_index_block);
1804
1805DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_defrag_xattr_bucket);
1806
1807DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_mv_xattr_bucket_cross_cluster);
1808
1809DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_divide_xattr_bucket_begin);
1810
1811DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_divide_xattr_bucket_move);
1812
1813DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_cp_xattr_bucket);
1814
1815DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_mv_xattr_buckets);
1816
1817DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_adjust_xattr_cross_cluster);
1818
1819DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_add_new_xattr_cluster_begin);
1820
1821DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_add_new_xattr_cluster);
1822
1823DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_add_new_xattr_cluster_insert);
1824
1825DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_extend_xattr_bucket);
1826
1827DEFINE_OCFS2_ULL_EVENT(ocfs2_add_new_xattr_bucket);
1828
1829DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_xattr_bucket_value_truncate);
1830
1831DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_rm_xattr_cluster);
1832
1833DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_reflink_xattr_header);
1834
1835DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_create_empty_xattr_block);
1836
1837DEFINE_OCFS2_STRING_EVENT(ocfs2_xattr_set_entry_bucket);
1838
1839DEFINE_OCFS2_STRING_EVENT(ocfs2_xattr_set_entry_index_block);
1840
1841DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_xattr_bucket_value_refcount);
1842
1843DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_reflink_xattr_buckets);
1844
1845DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_reflink_xattr_rec);
1846
1847/* End of trace events for fs/ocfs2/xattr.c. */
1848
1849/* Trace events for fs/ocfs2/reservations.c. */
1850
1851DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resv_insert);
1852
1853DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_resmap_find_free_bits_begin);
1854
1855DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resmap_find_free_bits_end);
1856
1857TRACE_EVENT(ocfs2_resv_find_window_begin,
1858        TP_PROTO(unsigned int r_start, unsigned int r_end, unsigned int goal,
1859                 unsigned int wanted, int empty_root),
1860        TP_ARGS(r_start, r_end, goal, wanted, empty_root),
1861        TP_STRUCT__entry(
1862                __field(unsigned int, r_start)
1863                __field(unsigned int, r_end)
1864                __field(unsigned int, goal)
1865                __field(unsigned int, wanted)
1866                __field(int, empty_root)
1867        ),
1868        TP_fast_assign(
1869                __entry->r_start = r_start;
1870                __entry->r_end = r_end;
1871                __entry->goal = goal;
1872                __entry->wanted = wanted;
1873                __entry->empty_root = empty_root;
1874        ),
1875        TP_printk("%u %u %u %u %d", __entry->r_start, __entry->r_end,
1876                  __entry->goal, __entry->wanted, __entry->empty_root)
1877);
1878
1879DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resv_find_window_prev);
1880
1881DEFINE_OCFS2_INT_INT_EVENT(ocfs2_resv_find_window_next);
1882
1883DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_cannibalize_resv_begin);
1884
1885TRACE_EVENT(ocfs2_cannibalize_resv_end,
1886        TP_PROTO(unsigned int start, unsigned int end, unsigned int len,
1887                 unsigned int last_start, unsigned int last_len),
1888        TP_ARGS(start, end, len, last_start, last_len),
1889        TP_STRUCT__entry(
1890                __field(unsigned int, start)
1891                __field(unsigned int, end)
1892                __field(unsigned int, len)
1893                __field(unsigned int, last_start)
1894                __field(unsigned int, last_len)
1895        ),
1896        TP_fast_assign(
1897                __entry->start = start;
1898                __entry->end = end;
1899                __entry->len = len;
1900                __entry->last_start = last_start;
1901                __entry->last_len = last_len;
1902        ),
1903        TP_printk("%u %u %u %u %u", __entry->start, __entry->end,
1904                  __entry->len, __entry->last_start, __entry->last_len)
1905);
1906
1907DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_resmap_resv_bits);
1908
1909TRACE_EVENT(ocfs2_resmap_claimed_bits_begin,
1910        TP_PROTO(unsigned int cstart, unsigned int cend, unsigned int clen,
1911                 unsigned int r_start, unsigned int r_end, unsigned int r_len,
1912                 unsigned int last_start, unsigned int last_len),
1913        TP_ARGS(cstart, cend, clen, r_start, r_end,
1914                r_len, last_start, last_len),
1915        TP_STRUCT__entry(
1916                __field(unsigned int, cstart)
1917                __field(unsigned int, cend)
1918                __field(unsigned int, clen)
1919                __field(unsigned int, r_start)
1920                __field(unsigned int, r_end)
1921                __field(unsigned int, r_len)
1922                __field(unsigned int, last_start)
1923                __field(unsigned int, last_len)
1924        ),
1925        TP_fast_assign(
1926                __entry->cstart = cstart;
1927                __entry->cend = cend;
1928                __entry->clen = clen;
1929                __entry->r_start = r_start;
1930                __entry->r_end = r_end;
1931                __entry->r_len = r_len;
1932                __entry->last_start = last_start;
1933                __entry->last_len = last_len;
1934        ),
1935        TP_printk("%u %u %u %u %u %u %u %u",
1936                  __entry->cstart, __entry->cend, __entry->clen,
1937                  __entry->r_start, __entry->r_end, __entry->r_len,
1938                  __entry->last_start, __entry->last_len)
1939);
1940
1941TRACE_EVENT(ocfs2_resmap_claimed_bits_end,
1942        TP_PROTO(unsigned int start, unsigned int end, unsigned int len,
1943                 unsigned int last_start, unsigned int last_len),
1944        TP_ARGS(start, end, len, last_start, last_len),
1945        TP_STRUCT__entry(
1946                __field(unsigned int, start)
1947                __field(unsigned int, end)
1948                __field(unsigned int, len)
1949                __field(unsigned int, last_start)
1950                __field(unsigned int, last_len)
1951        ),
1952        TP_fast_assign(
1953                __entry->start = start;
1954                __entry->end = end;
1955                __entry->len = len;
1956                __entry->last_start = last_start;
1957                __entry->last_len = last_len;
1958        ),
1959        TP_printk("%u %u %u %u %u", __entry->start, __entry->end,
1960                  __entry->len, __entry->last_start, __entry->last_len)
1961);
1962
1963/* End of trace events for fs/ocfs2/reservations.c. */
1964
1965/* Trace events for fs/ocfs2/quota_local.c. */
1966
1967DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_recover_local_quota_file);
1968
1969DEFINE_OCFS2_INT_EVENT(ocfs2_finish_quota_recovery);
1970
1971DEFINE_OCFS2_ULL_ULL_UINT_EVENT(olq_set_dquot);
1972
1973/* End of trace events for fs/ocfs2/quota_local.c. */
1974
1975/* Trace events for fs/ocfs2/quota_global.c. */
1976
1977DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_quota_block);
1978
1979TRACE_EVENT(ocfs2_sync_dquot,
1980        TP_PROTO(unsigned int dq_id, long long dqb_curspace,
1981                 long long spacechange, long long curinodes,
1982                 long long inodechange),
1983        TP_ARGS(dq_id, dqb_curspace, spacechange, curinodes, inodechange),
1984        TP_STRUCT__entry(
1985                __field(unsigned int, dq_id)
1986                __field(long long, dqb_curspace)
1987                __field(long long, spacechange)
1988                __field(long long, curinodes)
1989                __field(long long, inodechange)
1990        ),
1991        TP_fast_assign(
1992                __entry->dq_id = dq_id;
1993                __entry->dqb_curspace = dqb_curspace;
1994                __entry->spacechange = spacechange;
1995                __entry->curinodes = curinodes;
1996                __entry->inodechange = inodechange;
1997        ),
1998        TP_printk("%u %lld %lld %lld %lld", __entry->dq_id,
1999                  __entry->dqb_curspace, __entry->spacechange,
2000                  __entry->curinodes, __entry->inodechange)
2001);
2002
2003TRACE_EVENT(ocfs2_sync_dquot_helper,
2004        TP_PROTO(unsigned int dq_id, unsigned int dq_type, unsigned long type,
2005                 const char *s_id),
2006        TP_ARGS(dq_id, dq_type, type, s_id),
2007
2008        TP_STRUCT__entry(
2009                __field(unsigned int, dq_id)
2010                __field(unsigned int, dq_type)
2011                __field(unsigned long, type)
2012                __string(s_id, s_id)
2013        ),
2014        TP_fast_assign(
2015                __entry->dq_id = dq_id;
2016                __entry->dq_type = dq_type;
2017                __entry->type = type;
2018                __assign_str(s_id, s_id);
2019        ),
2020        TP_printk("%u %u %lu %s", __entry->dq_id, __entry->dq_type,
2021                  __entry->type, __get_str(s_id))
2022);
2023
2024DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_write_dquot);
2025
2026DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_release_dquot);
2027
2028DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_acquire_dquot);
2029
2030DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_get_next_id);
2031
2032DEFINE_OCFS2_UINT_INT_EVENT(ocfs2_mark_dquot_dirty);
2033
2034/* End of trace events for fs/ocfs2/quota_global.c. */
2035
2036/* Trace events for fs/ocfs2/dir.c. */
2037DEFINE_OCFS2_INT_EVENT(ocfs2_search_dirblock);
2038
2039DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_dir_block);
2040
2041DEFINE_OCFS2_POINTER_EVENT(ocfs2_find_entry_el);
2042
2043TRACE_EVENT(ocfs2_dx_dir_search,
2044        TP_PROTO(unsigned long long ino, int namelen, const char *name,
2045                 unsigned int major_hash, unsigned int minor_hash,
2046                 unsigned long long blkno),
2047        TP_ARGS(ino, namelen, name, major_hash, minor_hash, blkno),
2048        TP_STRUCT__entry(
2049                __field(unsigned long long, ino)
2050                __field(int, namelen)
2051                __string(name, name)
2052                __field(unsigned int, major_hash)
2053                __field(unsigned int,minor_hash)
2054                __field(unsigned long long, blkno)
2055        ),
2056        TP_fast_assign(
2057                __entry->ino = ino;
2058                __entry->namelen = namelen;
2059                __assign_str(name, name);
2060                __entry->major_hash = major_hash;
2061                __entry->minor_hash = minor_hash;
2062                __entry->blkno = blkno;
2063        ),
2064        TP_printk("%llu %.*s %u %u %llu", __entry->ino,
2065                   __entry->namelen, __get_str(name),
2066                  __entry->major_hash, __entry->minor_hash, __entry->blkno)
2067);
2068
2069DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_dx_dir_search_leaf_info);
2070
2071DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_delete_entry_dx);
2072
2073DEFINE_OCFS2_ULL_EVENT(ocfs2_readdir);
2074
2075TRACE_EVENT(ocfs2_find_files_on_disk,
2076        TP_PROTO(int namelen, const char *name, void *blkno,
2077                 unsigned long long dir),
2078        TP_ARGS(namelen, name, blkno, dir),
2079        TP_STRUCT__entry(
2080                __field(int, namelen)
2081                __string(name, name)
2082                __field(void *, blkno)
2083                __field(unsigned long long, dir)
2084        ),
2085        TP_fast_assign(
2086                __entry->namelen = namelen;
2087                __assign_str(name, name);
2088                __entry->blkno = blkno;
2089                __entry->dir = dir;
2090        ),
2091        TP_printk("%.*s %p %llu", __entry->namelen, __get_str(name),
2092                  __entry->blkno, __entry->dir)
2093);
2094
2095TRACE_EVENT(ocfs2_check_dir_for_entry,
2096        TP_PROTO(unsigned long long dir, int namelen, const char *name),
2097        TP_ARGS(dir, namelen, name),
2098        TP_STRUCT__entry(
2099                __field(unsigned long long, dir)
2100                __field(int, namelen)
2101                __string(name, name)
2102        ),
2103        TP_fast_assign(
2104                __entry->dir = dir;
2105                __entry->namelen = namelen;
2106                __assign_str(name, name);
2107        ),
2108        TP_printk("%llu %.*s", __entry->dir,
2109                  __entry->namelen, __get_str(name))
2110);
2111
2112DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_dx_dir_attach_index);
2113
2114DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_dx_dir_format_cluster);
2115
2116TRACE_EVENT(ocfs2_dx_dir_index_root_block,
2117        TP_PROTO(unsigned long long dir,
2118                 unsigned int major_hash, unsigned int minor_hash,
2119                 int namelen, const char *name, unsigned int num_used),
2120        TP_ARGS(dir, major_hash, minor_hash, namelen, name, num_used),
2121        TP_STRUCT__entry(
2122                __field(unsigned long long, dir)
2123                __field(unsigned int, major_hash)
2124                __field(unsigned int, minor_hash)
2125                __field(int, namelen)
2126                __string(name, name)
2127                __field(unsigned int, num_used)
2128        ),
2129        TP_fast_assign(
2130                __entry->dir = dir;
2131                __entry->major_hash = major_hash;
2132                __entry->minor_hash = minor_hash;
2133                __entry->namelen = namelen;
2134                __assign_str(name, name);
2135                __entry->num_used = num_used;
2136        ),
2137        TP_printk("%llu %x %x %.*s %u", __entry->dir,
2138                  __entry->major_hash, __entry->minor_hash,
2139                   __entry->namelen, __get_str(name), __entry->num_used)
2140);
2141
2142DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_extend_dir);
2143
2144DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_dx_dir_rebalance);
2145
2146DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_dx_dir_rebalance_split);
2147
2148DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_prepare_dir_for_insert);
2149
2150/* End of trace events for fs/ocfs2/dir.c. */
2151
2152/* Trace events for fs/ocfs2/namei.c. */
2153
2154DECLARE_EVENT_CLASS(ocfs2__dentry_ops,
2155        TP_PROTO(void *dir, void *dentry, int name_len, const char *name,
2156                 unsigned long long dir_blkno, unsigned long long extra),
2157        TP_ARGS(dir, dentry, name_len, name, dir_blkno, extra),
2158        TP_STRUCT__entry(
2159                __field(void *, dir)
2160                __field(void *, dentry)
2161                __field(int, name_len)
2162                __string(name, name)
2163                __field(unsigned long long, dir_blkno)
2164                __field(unsigned long long, extra)
2165        ),
2166        TP_fast_assign(
2167                __entry->dir = dir;
2168                __entry->dentry = dentry;
2169                __entry->name_len = name_len;
2170                __assign_str(name, name);
2171                __entry->dir_blkno = dir_blkno;
2172                __entry->extra = extra;
2173        ),
2174        TP_printk("%p %p %.*s %llu %llu", __entry->dir, __entry->dentry,
2175                  __entry->name_len, __get_str(name),
2176                  __entry->dir_blkno, __entry->extra)
2177);
2178
2179#define DEFINE_OCFS2_DENTRY_OPS(name)                                   \
2180DEFINE_EVENT(ocfs2__dentry_ops, name,                                   \
2181TP_PROTO(void *dir, void *dentry, int name_len, const char *name,       \
2182         unsigned long long dir_blkno, unsigned long long extra),       \
2183        TP_ARGS(dir, dentry, name_len, name, dir_blkno, extra))
2184
2185DEFINE_OCFS2_DENTRY_OPS(ocfs2_lookup);
2186
2187DEFINE_OCFS2_DENTRY_OPS(ocfs2_mkdir);
2188
2189DEFINE_OCFS2_DENTRY_OPS(ocfs2_create);
2190
2191DEFINE_OCFS2_DENTRY_OPS(ocfs2_unlink);
2192
2193DEFINE_OCFS2_DENTRY_OPS(ocfs2_symlink_create);
2194
2195DEFINE_OCFS2_DENTRY_OPS(ocfs2_mv_orphaned_inode_to_new);
2196
2197DEFINE_OCFS2_POINTER_EVENT(ocfs2_lookup_ret);
2198
2199TRACE_EVENT(ocfs2_mknod,
2200        TP_PROTO(void *dir, void *dentry, int name_len, const char *name,
2201                 unsigned long long dir_blkno, unsigned long dev, int mode),
2202        TP_ARGS(dir, dentry, name_len, name, dir_blkno, dev, mode),
2203        TP_STRUCT__entry(
2204                __field(void *, dir)
2205                __field(void *, dentry)
2206                __field(int, name_len)
2207                __string(name, name)
2208                __field(unsigned long long, dir_blkno)
2209                __field(unsigned long, dev)
2210                __field(int, mode)
2211        ),
2212        TP_fast_assign(
2213                __entry->dir = dir;
2214                __entry->dentry = dentry;
2215                __entry->name_len = name_len;
2216                __assign_str(name, name);
2217                __entry->dir_blkno = dir_blkno;
2218                __entry->dev = dev;
2219                __entry->mode = mode;
2220        ),
2221        TP_printk("%p %p %.*s %llu %lu %d", __entry->dir, __entry->dentry,
2222                  __entry->name_len, __get_str(name),
2223                  __entry->dir_blkno, __entry->dev, __entry->mode)
2224);
2225
2226TRACE_EVENT(ocfs2_link,
2227        TP_PROTO(unsigned long long ino, int old_len, const char *old_name,
2228                 int name_len, const char *name),
2229        TP_ARGS(ino, old_len, old_name, name_len, name),
2230        TP_STRUCT__entry(
2231                __field(unsigned long long, ino)
2232                __field(int, old_len)
2233                __string(old_name, old_name)
2234                __field(int, name_len)
2235                __string(name, name)
2236        ),
2237        TP_fast_assign(
2238                __entry->ino = ino;
2239                __entry->old_len = old_len;
2240                __assign_str(old_name, old_name);
2241                __entry->name_len = name_len;
2242                __assign_str(name, name);
2243        ),
2244        TP_printk("%llu %.*s %.*s", __entry->ino,
2245                  __entry->old_len, __get_str(old_name),
2246                  __entry->name_len, __get_str(name))
2247);
2248
2249DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_unlink_noent);
2250
2251DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_double_lock);
2252
2253DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_double_lock_end);
2254
2255TRACE_EVENT(ocfs2_rename,
2256        TP_PROTO(void *old_dir, void *old_dentry,
2257                 void *new_dir, void *new_dentry,
2258                 int old_len, const char *old_name,
2259                 int new_len, const char *new_name),
2260        TP_ARGS(old_dir, old_dentry, new_dir, new_dentry,
2261                old_len, old_name, new_len, new_name),
2262        TP_STRUCT__entry(
2263                __field(void *, old_dir)
2264                __field(void *, old_dentry)
2265                __field(void *, new_dir)
2266                __field(void *, new_dentry)
2267                __field(int, old_len)
2268                __string(old_name, old_name)
2269                __field(int, new_len)
2270                __string(new_name, new_name)
2271        ),
2272        TP_fast_assign(
2273                __entry->old_dir = old_dir;
2274                __entry->old_dentry = old_dentry;
2275                __entry->new_dir = new_dir;
2276                __entry->new_dentry = new_dentry;
2277                __entry->old_len = old_len;
2278                __assign_str(old_name, old_name);
2279                __entry->new_len = new_len;
2280                __assign_str(new_name, new_name);
2281        ),
2282        TP_printk("%p %p %p %p %.*s %.*s",
2283                  __entry->old_dir, __entry->old_dentry,
2284                  __entry->new_dir, __entry->new_dentry,
2285                  __entry->old_len, __get_str(old_name),
2286                  __entry->new_len, __get_str(new_name))
2287);
2288
2289DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_rename_not_permitted);
2290
2291TRACE_EVENT(ocfs2_rename_target_exists,
2292        TP_PROTO(int new_len, const char *new_name),
2293        TP_ARGS(new_len, new_name),
2294        TP_STRUCT__entry(
2295                __field(int, new_len)
2296                __string(new_name, new_name)
2297        ),
2298        TP_fast_assign(
2299                __entry->new_len = new_len;
2300                __assign_str(new_name, new_name);
2301        ),
2302        TP_printk("%.*s", __entry->new_len, __get_str(new_name))
2303);
2304
2305DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_rename_disagree);
2306
2307TRACE_EVENT(ocfs2_rename_over_existing,
2308        TP_PROTO(unsigned long long new_blkno, void *new_bh,
2309                 unsigned long long newdi_blkno),
2310        TP_ARGS(new_blkno, new_bh, newdi_blkno),
2311        TP_STRUCT__entry(
2312                __field(unsigned long long, new_blkno)
2313                __field(void *, new_bh)
2314                __field(unsigned long long, newdi_blkno)
2315        ),
2316        TP_fast_assign(
2317                __entry->new_blkno = new_blkno;
2318                __entry->new_bh = new_bh;
2319                __entry->newdi_blkno = newdi_blkno;
2320        ),
2321        TP_printk("%llu %p %llu", __entry->new_blkno, __entry->new_bh,
2322                  __entry->newdi_blkno)
2323);
2324
2325DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_create_symlink_data);
2326
2327TRACE_EVENT(ocfs2_symlink_begin,
2328        TP_PROTO(void *dir, void *dentry, const char *symname,
2329                 int len, const char *name),
2330        TP_ARGS(dir, dentry, symname, len, name),
2331        TP_STRUCT__entry(
2332                __field(void *, dir)
2333                __field(void *, dentry)
2334                __field(const char *, symname)
2335                __field(int, len)
2336                __string(name, name)
2337        ),
2338        TP_fast_assign(
2339                __entry->dir = dir;
2340                __entry->dentry = dentry;
2341                __entry->symname = symname;
2342                __entry->len = len;
2343                __assign_str(name, name);
2344        ),
2345        TP_printk("%p %p %s %.*s", __entry->dir, __entry->dentry,
2346                  __entry->symname, __entry->len, __get_str(name))
2347);
2348
2349TRACE_EVENT(ocfs2_blkno_stringify,
2350        TP_PROTO(unsigned long long blkno, const char *name, int namelen),
2351        TP_ARGS(blkno, name, namelen),
2352        TP_STRUCT__entry(
2353                __field(unsigned long long, blkno)
2354                __string(name, name)
2355                __field(int, namelen)
2356        ),
2357        TP_fast_assign(
2358                __entry->blkno = blkno;
2359                __assign_str(name, name);
2360                __entry->namelen = namelen;
2361        ),
2362        TP_printk("%llu %s %d", __entry->blkno, __get_str(name),
2363                  __entry->namelen)
2364);
2365
2366DEFINE_OCFS2_ULL_EVENT(ocfs2_orphan_add_begin);
2367
2368DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_orphan_add_end);
2369
2370TRACE_EVENT(ocfs2_orphan_del,
2371        TP_PROTO(unsigned long long dir, const char *name, int namelen),
2372        TP_ARGS(dir, name, namelen),
2373        TP_STRUCT__entry(
2374                __field(unsigned long long, dir)
2375                __string(name, name)
2376                __field(int, namelen)
2377        ),
2378        TP_fast_assign(
2379                __entry->dir = dir;
2380                __assign_str(name, name);
2381                __entry->namelen = namelen;
2382        ),
2383        TP_printk("%llu %s %d", __entry->dir, __get_str(name),
2384                  __entry->namelen)
2385);
2386
2387/* End of trace events for fs/ocfs2/namei.c. */
2388
2389/* Trace events for fs/ocfs2/dcache.c. */
2390
2391TRACE_EVENT(ocfs2_dentry_revalidate,
2392        TP_PROTO(void *dentry, int len, const char *name),
2393        TP_ARGS(dentry, len, name),
2394        TP_STRUCT__entry(
2395                __field(void *, dentry)
2396                __field(int, len)
2397                __string(name, name)
2398        ),
2399        TP_fast_assign(
2400                __entry->dentry = dentry;
2401                __entry->len = len;
2402                __assign_str(name, name);
2403        ),
2404        TP_printk("%p %.*s", __entry->dentry, __entry->len, __get_str(name))
2405);
2406
2407TRACE_EVENT(ocfs2_dentry_revalidate_negative,
2408        TP_PROTO(int len, const char *name, unsigned long pgen,
2409                 unsigned long gen),
2410        TP_ARGS(len, name, pgen, gen),
2411        TP_STRUCT__entry(
2412                __field(int, len)
2413                __string(name, name)
2414                __field(unsigned long, pgen)
2415                __field(unsigned long, gen)
2416        ),
2417        TP_fast_assign(
2418                __entry->len = len;
2419                __assign_str(name, name);
2420                __entry->pgen = pgen;
2421                __entry->gen = gen;
2422        ),
2423        TP_printk("%.*s %lu %lu", __entry->len, __get_str(name),
2424                  __entry->pgen, __entry->gen)
2425);
2426
2427DEFINE_OCFS2_ULL_EVENT(ocfs2_dentry_revalidate_delete);
2428
2429DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_dentry_revalidate_orphaned);
2430
2431DEFINE_OCFS2_ULL_EVENT(ocfs2_dentry_revalidate_nofsdata);
2432
2433DEFINE_OCFS2_INT_EVENT(ocfs2_dentry_revalidate_ret);
2434
2435TRACE_EVENT(ocfs2_find_local_alias,
2436        TP_PROTO(int len, const char *name),
2437        TP_ARGS(len, name),
2438        TP_STRUCT__entry(
2439                __field(int, len)
2440                __string(name, name)
2441        ),
2442        TP_fast_assign(
2443                __entry->len = len;
2444                __assign_str(name, name);
2445        ),
2446        TP_printk("%.*s", __entry->len, __get_str(name))
2447);
2448
2449TRACE_EVENT(ocfs2_dentry_attach_lock,
2450        TP_PROTO(int len, const char *name,
2451                 unsigned long long parent, void *fsdata),
2452        TP_ARGS(len, name, parent, fsdata),
2453        TP_STRUCT__entry(
2454                __field(int, len)
2455                __string(name, name)
2456                __field(unsigned long long, parent)
2457                __field(void *, fsdata)
2458        ),
2459        TP_fast_assign(
2460                __entry->len = len;
2461                __assign_str(name, name);
2462                __entry->parent = parent;
2463                __entry->fsdata = fsdata;
2464        ),
2465        TP_printk("%.*s %llu %p", __entry->len, __get_str(name),
2466                  __entry->parent, __entry->fsdata)
2467);
2468
2469TRACE_EVENT(ocfs2_dentry_attach_lock_found,
2470        TP_PROTO(const char *name, unsigned long long parent,
2471                 unsigned long long ino),
2472        TP_ARGS(name, parent, ino),
2473        TP_STRUCT__entry(
2474                __string(name, name)
2475                __field(unsigned long long, parent)
2476                __field(unsigned long long, ino)
2477        ),
2478        TP_fast_assign(
2479                __assign_str(name, name);
2480                __entry->parent = parent;
2481                __entry->ino = ino;
2482        ),
2483        TP_printk("%s %llu %llu", __get_str(name), __entry->parent, __entry->ino)
2484);
2485/* End of trace events for fs/ocfs2/dcache.c. */
2486
2487/* Trace events for fs/ocfs2/export.c. */
2488
2489TRACE_EVENT(ocfs2_get_dentry_begin,
2490        TP_PROTO(void *sb, void *handle, unsigned long long blkno),
2491        TP_ARGS(sb, handle, blkno),
2492        TP_STRUCT__entry(
2493                __field(void *, sb)
2494                __field(void *, handle)
2495                __field(unsigned long long, blkno)
2496        ),
2497        TP_fast_assign(
2498                __entry->sb = sb;
2499                __entry->handle = handle;
2500                __entry->blkno = blkno;
2501        ),
2502        TP_printk("%p %p %llu", __entry->sb, __entry->handle, __entry->blkno)
2503);
2504
2505DEFINE_OCFS2_INT_INT_EVENT(ocfs2_get_dentry_test_bit);
2506
2507DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_get_dentry_stale);
2508
2509DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_get_dentry_generation);
2510
2511DEFINE_OCFS2_POINTER_EVENT(ocfs2_get_dentry_end);
2512
2513TRACE_EVENT(ocfs2_get_parent,
2514        TP_PROTO(void *child, int len, const char *name,
2515                 unsigned long long ino),
2516        TP_ARGS(child, len, name, ino),
2517        TP_STRUCT__entry(
2518                __field(void *, child)
2519                __field(int, len)
2520                __string(name, name)
2521                __field(unsigned long long, ino)
2522        ),
2523        TP_fast_assign(
2524                __entry->child = child;
2525                __entry->len = len;
2526                __assign_str(name, name);
2527                __entry->ino = ino;
2528        ),
2529        TP_printk("%p %.*s %llu", __entry->child, __entry->len,
2530                  __get_str(name), __entry->ino)
2531);
2532
2533DEFINE_OCFS2_POINTER_EVENT(ocfs2_get_parent_end);
2534
2535TRACE_EVENT(ocfs2_encode_fh_begin,
2536        TP_PROTO(void *dentry, int name_len, const char *name,
2537                 void *fh, int len, int connectable),
2538        TP_ARGS(dentry, name_len, name, fh, len, connectable),
2539        TP_STRUCT__entry(
2540                __field(void *, dentry)
2541                __field(int, name_len)
2542                __string(name, name)
2543                __field(void *, fh)
2544                __field(int, len)
2545                __field(int, connectable)
2546        ),
2547        TP_fast_assign(
2548                __entry->dentry = dentry;
2549                __entry->name_len = name_len;
2550                __assign_str(name, name);
2551                __entry->fh = fh;
2552                __entry->len = len;
2553                __entry->connectable = connectable;
2554        ),
2555        TP_printk("%p %.*s %p %d %d", __entry->dentry, __entry->name_len,
2556                  __get_str(name), __entry->fh, __entry->len,
2557                  __entry->connectable)
2558);
2559
2560DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_encode_fh_self);
2561
2562DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_encode_fh_parent);
2563
2564DEFINE_OCFS2_INT_EVENT(ocfs2_encode_fh_type);
2565
2566/* End of trace events for fs/ocfs2/export.c. */
2567
2568/* Trace events for fs/ocfs2/journal.c. */
2569
2570DEFINE_OCFS2_UINT_EVENT(ocfs2_commit_cache_begin);
2571
2572DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_commit_cache_end);
2573
2574DEFINE_OCFS2_INT_INT_EVENT(ocfs2_extend_trans);
2575
2576DEFINE_OCFS2_INT_EVENT(ocfs2_extend_trans_restart);
2577
2578DEFINE_OCFS2_INT_INT_EVENT(ocfs2_allocate_extend_trans);
2579
2580DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_journal_access);
2581
2582DEFINE_OCFS2_ULL_EVENT(ocfs2_journal_dirty);
2583
2584DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_journal_init);
2585
2586DEFINE_OCFS2_UINT_EVENT(ocfs2_journal_init_maxlen);
2587
2588DEFINE_OCFS2_INT_EVENT(ocfs2_journal_shutdown);
2589
2590DEFINE_OCFS2_POINTER_EVENT(ocfs2_journal_shutdown_wait);
2591
2592DEFINE_OCFS2_ULL_EVENT(ocfs2_complete_recovery);
2593
2594DEFINE_OCFS2_INT_EVENT(ocfs2_complete_recovery_end);
2595
2596TRACE_EVENT(ocfs2_complete_recovery_slot,
2597        TP_PROTO(int slot, unsigned long long la_ino,
2598                 unsigned long long tl_ino, void *qrec),
2599        TP_ARGS(slot, la_ino, tl_ino, qrec),
2600        TP_STRUCT__entry(
2601                __field(int, slot)
2602                __field(unsigned long long, la_ino)
2603                __field(unsigned long long, tl_ino)
2604                __field(void *, qrec)
2605        ),
2606        TP_fast_assign(
2607                __entry->slot = slot;
2608                __entry->la_ino = la_ino;
2609                __entry->tl_ino = tl_ino;
2610                __entry->qrec = qrec;
2611        ),
2612        TP_printk("%d %llu %llu %p", __entry->slot, __entry->la_ino,
2613                  __entry->tl_ino, __entry->qrec)
2614);
2615
2616DEFINE_OCFS2_INT_INT_EVENT(ocfs2_recovery_thread_node);
2617
2618DEFINE_OCFS2_INT_EVENT(ocfs2_recovery_thread_end);
2619
2620TRACE_EVENT(ocfs2_recovery_thread,
2621        TP_PROTO(int node_num, int osb_node_num, int disable,
2622                 void *recovery_thread, int map_set),
2623        TP_ARGS(node_num, osb_node_num, disable, recovery_thread, map_set),
2624        TP_STRUCT__entry(
2625                __field(int, node_num)
2626                __field(int, osb_node_num)
2627                __field(int,disable)
2628                __field(void *, recovery_thread)
2629                __field(int,map_set)
2630        ),
2631        TP_fast_assign(
2632                __entry->node_num = node_num;
2633                __entry->osb_node_num = osb_node_num;
2634                __entry->disable = disable;
2635                __entry->recovery_thread = recovery_thread;
2636                __entry->map_set = map_set;
2637        ),
2638        TP_printk("%d %d %d %p %d", __entry->node_num,
2639                   __entry->osb_node_num, __entry->disable,
2640                   __entry->recovery_thread, __entry->map_set)
2641);
2642
2643DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_replay_journal_recovered);
2644
2645DEFINE_OCFS2_INT_EVENT(ocfs2_replay_journal_lock_err);
2646
2647DEFINE_OCFS2_INT_EVENT(ocfs2_replay_journal_skip);
2648
2649DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_recover_node);
2650
2651DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_recover_node_skip);
2652
2653DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_mark_dead_nodes);
2654
2655DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_queue_orphan_scan_begin);
2656
2657DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_queue_orphan_scan_end);
2658
2659DEFINE_OCFS2_ULL_EVENT(ocfs2_orphan_filldir);
2660
2661DEFINE_OCFS2_INT_EVENT(ocfs2_recover_orphans);
2662
2663DEFINE_OCFS2_ULL_EVENT(ocfs2_recover_orphans_iput);
2664
2665DEFINE_OCFS2_INT_EVENT(ocfs2_wait_on_mount);
2666
2667/* End of trace events for fs/ocfs2/journal.c. */
2668
2669/* Trace events for fs/ocfs2/buffer_head_io.c. */
2670
2671DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_read_blocks_sync);
2672
2673DEFINE_OCFS2_ULL_EVENT(ocfs2_read_blocks_sync_jbd);
2674
2675DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_read_blocks_from_disk);
2676
2677DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_read_blocks_bh);
2678
2679DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_read_blocks_end);
2680
2681TRACE_EVENT(ocfs2_write_block,
2682        TP_PROTO(unsigned long long block, void *ci),
2683        TP_ARGS(block, ci),
2684        TP_STRUCT__entry(
2685                __field(unsigned long long, block)
2686                __field(void *, ci)
2687        ),
2688        TP_fast_assign(
2689                __entry->block = block;
2690                __entry->ci = ci;
2691        ),
2692        TP_printk("%llu %p", __entry->block, __entry->ci)
2693);
2694
2695TRACE_EVENT(ocfs2_read_blocks_begin,
2696        TP_PROTO(void *ci, unsigned long long block,
2697                 unsigned int nr, int flags),
2698        TP_ARGS(ci, block, nr, flags),
2699        TP_STRUCT__entry(
2700                __field(void *, ci)
2701                __field(unsigned long long, block)
2702                __field(unsigned int, nr)
2703                __field(int, flags)
2704        ),
2705        TP_fast_assign(
2706                __entry->ci = ci;
2707                __entry->block = block;
2708                __entry->nr = nr;
2709                __entry->flags = flags;
2710        ),
2711        TP_printk("%p %llu %u %d", __entry->ci, __entry->block,
2712                  __entry->nr, __entry->flags)
2713);
2714
2715/* End of trace events for fs/ocfs2/buffer_head_io.c. */
2716
2717/* Trace events for fs/ocfs2/uptodate.c. */
2718
2719DEFINE_OCFS2_ULL_EVENT(ocfs2_purge_copied_metadata_tree);
2720
2721DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_metadata_cache_purge);
2722
2723DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_buffer_cached_begin);
2724
2725TRACE_EVENT(ocfs2_buffer_cached_end,
2726        TP_PROTO(int index, void *item),
2727        TP_ARGS(index, item),
2728        TP_STRUCT__entry(
2729                __field(int, index)
2730                __field(void *, item)
2731        ),
2732        TP_fast_assign(
2733                __entry->index = index;
2734                __entry->item = item;
2735        ),
2736        TP_printk("%d %p", __entry->index, __entry->item)
2737);
2738
2739DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_append_cache_array);
2740
2741DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_insert_cache_tree);
2742
2743DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_expand_cache);
2744
2745DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_set_buffer_uptodate);
2746
2747DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_set_buffer_uptodate_begin);
2748
2749DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_remove_metadata_array);
2750
2751DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_remove_metadata_tree);
2752
2753DEFINE_OCFS2_ULL_ULL_UINT_UINT_EVENT(ocfs2_remove_block_from_cache);
2754
2755/* End of trace events for fs/ocfs2/uptodate.c. */
2756#endif /* _TRACE_OCFS2_H */
2757
2758/* This part must be outside protection */
2759#undef TRACE_INCLUDE_PATH
2760#define TRACE_INCLUDE_PATH .
2761#define TRACE_INCLUDE_FILE ocfs2_trace
2762#include <trace/define_trace.h>
2763