linux/include/trace/events/ext3.h
<<
>>
Prefs
   1#undef TRACE_SYSTEM
   2#define TRACE_SYSTEM ext3
   3
   4#if !defined(_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ)
   5#define _TRACE_EXT3_H
   6
   7#include <linux/tracepoint.h>
   8
   9TRACE_EVENT(ext3_free_inode,
  10        TP_PROTO(struct inode *inode),
  11
  12        TP_ARGS(inode),
  13
  14        TP_STRUCT__entry(
  15                __field(        dev_t,  dev                     )
  16                __field(        ino_t,  ino                     )
  17                __field(        umode_t, mode                   )
  18                __field(        uid_t,  uid                     )
  19                __field(        gid_t,  gid                     )
  20                __field(        blkcnt_t, blocks                )
  21        ),
  22
  23        TP_fast_assign(
  24                __entry->dev    = inode->i_sb->s_dev;
  25                __entry->ino    = inode->i_ino;
  26                __entry->mode   = inode->i_mode;
  27                __entry->uid    = i_uid_read(inode);
  28                __entry->gid    = i_gid_read(inode);
  29                __entry->blocks = inode->i_blocks;
  30        ),
  31
  32        TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu",
  33                  MAJOR(__entry->dev), MINOR(__entry->dev),
  34                  (unsigned long) __entry->ino,
  35                  __entry->mode, __entry->uid, __entry->gid,
  36                  (unsigned long) __entry->blocks)
  37);
  38
  39TRACE_EVENT(ext3_request_inode,
  40        TP_PROTO(struct inode *dir, int mode),
  41
  42        TP_ARGS(dir, mode),
  43
  44        TP_STRUCT__entry(
  45                __field(        dev_t,  dev                     )
  46                __field(        ino_t,  dir                     )
  47                __field(        umode_t, mode                   )
  48        ),
  49
  50        TP_fast_assign(
  51                __entry->dev    = dir->i_sb->s_dev;
  52                __entry->dir    = dir->i_ino;
  53                __entry->mode   = mode;
  54        ),
  55
  56        TP_printk("dev %d,%d dir %lu mode 0%o",
  57                  MAJOR(__entry->dev), MINOR(__entry->dev),
  58                  (unsigned long) __entry->dir, __entry->mode)
  59);
  60
  61TRACE_EVENT(ext3_allocate_inode,
  62        TP_PROTO(struct inode *inode, struct inode *dir, int mode),
  63
  64        TP_ARGS(inode, dir, mode),
  65
  66        TP_STRUCT__entry(
  67                __field(        dev_t,  dev                     )
  68                __field(        ino_t,  ino                     )
  69                __field(        ino_t,  dir                     )
  70                __field(        umode_t, mode                   )
  71        ),
  72
  73        TP_fast_assign(
  74                __entry->dev    = inode->i_sb->s_dev;
  75                __entry->ino    = inode->i_ino;
  76                __entry->dir    = dir->i_ino;
  77                __entry->mode   = mode;
  78        ),
  79
  80        TP_printk("dev %d,%d ino %lu dir %lu mode 0%o",
  81                  MAJOR(__entry->dev), MINOR(__entry->dev),
  82                  (unsigned long) __entry->ino,
  83                  (unsigned long) __entry->dir, __entry->mode)
  84);
  85
  86TRACE_EVENT(ext3_evict_inode,
  87        TP_PROTO(struct inode *inode),
  88
  89        TP_ARGS(inode),
  90
  91        TP_STRUCT__entry(
  92                __field(        dev_t,  dev                     )
  93                __field(        ino_t,  ino                     )
  94                __field(        int,    nlink                   )
  95        ),
  96
  97        TP_fast_assign(
  98                __entry->dev    = inode->i_sb->s_dev;
  99                __entry->ino    = inode->i_ino;
 100                __entry->nlink  = inode->i_nlink;
 101        ),
 102
 103        TP_printk("dev %d,%d ino %lu nlink %d",
 104                  MAJOR(__entry->dev), MINOR(__entry->dev),
 105                  (unsigned long) __entry->ino, __entry->nlink)
 106);
 107
 108TRACE_EVENT(ext3_drop_inode,
 109        TP_PROTO(struct inode *inode, int drop),
 110
 111        TP_ARGS(inode, drop),
 112
 113        TP_STRUCT__entry(
 114                __field(        dev_t,  dev                     )
 115                __field(        ino_t,  ino                     )
 116                __field(        int,    drop                    )
 117        ),
 118
 119        TP_fast_assign(
 120                __entry->dev    = inode->i_sb->s_dev;
 121                __entry->ino    = inode->i_ino;
 122                __entry->drop   = drop;
 123        ),
 124
 125        TP_printk("dev %d,%d ino %lu drop %d",
 126                  MAJOR(__entry->dev), MINOR(__entry->dev),
 127                  (unsigned long) __entry->ino, __entry->drop)
 128);
 129
 130TRACE_EVENT(ext3_mark_inode_dirty,
 131        TP_PROTO(struct inode *inode, unsigned long IP),
 132
 133        TP_ARGS(inode, IP),
 134
 135        TP_STRUCT__entry(
 136                __field(        dev_t,  dev                     )
 137                __field(        ino_t,  ino                     )
 138                __field(unsigned long,  ip                      )
 139        ),
 140
 141        TP_fast_assign(
 142                __entry->dev    = inode->i_sb->s_dev;
 143                __entry->ino    = inode->i_ino;
 144                __entry->ip     = IP;
 145        ),
 146
 147        TP_printk("dev %d,%d ino %lu caller %pF",
 148                  MAJOR(__entry->dev), MINOR(__entry->dev),
 149                  (unsigned long) __entry->ino, (void *)__entry->ip)
 150);
 151
 152TRACE_EVENT(ext3_write_begin,
 153        TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
 154                 unsigned int flags),
 155
 156        TP_ARGS(inode, pos, len, flags),
 157
 158        TP_STRUCT__entry(
 159                __field(        dev_t,  dev                     )
 160                __field(        ino_t,  ino                     )
 161                __field(        loff_t, pos                     )
 162                __field(        unsigned int, len               )
 163                __field(        unsigned int, flags             )
 164        ),
 165
 166        TP_fast_assign(
 167                __entry->dev    = inode->i_sb->s_dev;
 168                __entry->ino    = inode->i_ino;
 169                __entry->pos    = pos;
 170                __entry->len    = len;
 171                __entry->flags  = flags;
 172        ),
 173
 174        TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u",
 175                  MAJOR(__entry->dev), MINOR(__entry->dev),
 176                  (unsigned long) __entry->ino,
 177                  (unsigned long long) __entry->pos, __entry->len,
 178                  __entry->flags)
 179);
 180
 181DECLARE_EVENT_CLASS(ext3__write_end,
 182        TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
 183                        unsigned int copied),
 184
 185        TP_ARGS(inode, pos, len, copied),
 186
 187        TP_STRUCT__entry(
 188                __field(        dev_t,  dev                     )
 189                __field(        ino_t,  ino                     )
 190                __field(        loff_t, pos                     )
 191                __field(        unsigned int, len               )
 192                __field(        unsigned int, copied            )
 193        ),
 194
 195        TP_fast_assign(
 196                __entry->dev    = inode->i_sb->s_dev;
 197                __entry->ino    = inode->i_ino;
 198                __entry->pos    = pos;
 199                __entry->len    = len;
 200                __entry->copied = copied;
 201        ),
 202
 203        TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u",
 204                  MAJOR(__entry->dev), MINOR(__entry->dev),
 205                  (unsigned long) __entry->ino,
 206                  (unsigned long long) __entry->pos, __entry->len,
 207                  __entry->copied)
 208);
 209
 210DEFINE_EVENT(ext3__write_end, ext3_ordered_write_end,
 211
 212        TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
 213                 unsigned int copied),
 214
 215        TP_ARGS(inode, pos, len, copied)
 216);
 217
 218DEFINE_EVENT(ext3__write_end, ext3_writeback_write_end,
 219
 220        TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
 221                 unsigned int copied),
 222
 223        TP_ARGS(inode, pos, len, copied)
 224);
 225
 226DEFINE_EVENT(ext3__write_end, ext3_journalled_write_end,
 227
 228        TP_PROTO(struct inode *inode, loff_t pos, unsigned int len,
 229                 unsigned int copied),
 230
 231        TP_ARGS(inode, pos, len, copied)
 232);
 233
 234DECLARE_EVENT_CLASS(ext3__page_op,
 235        TP_PROTO(struct page *page),
 236
 237        TP_ARGS(page),
 238
 239        TP_STRUCT__entry(
 240                __field(        dev_t,  dev                     )
 241                __field(        ino_t,  ino                     )
 242                __field(        pgoff_t, index                  )
 243
 244        ),
 245
 246        TP_fast_assign(
 247                __entry->index  = page->index;
 248                __entry->ino    = page->mapping->host->i_ino;
 249                __entry->dev    = page->mapping->host->i_sb->s_dev;
 250        ),
 251
 252        TP_printk("dev %d,%d ino %lu page_index %lu",
 253                  MAJOR(__entry->dev), MINOR(__entry->dev),
 254                  (unsigned long) __entry->ino, __entry->index)
 255);
 256
 257DEFINE_EVENT(ext3__page_op, ext3_ordered_writepage,
 258
 259        TP_PROTO(struct page *page),
 260
 261        TP_ARGS(page)
 262);
 263
 264DEFINE_EVENT(ext3__page_op, ext3_writeback_writepage,
 265
 266        TP_PROTO(struct page *page),
 267
 268        TP_ARGS(page)
 269);
 270
 271DEFINE_EVENT(ext3__page_op, ext3_journalled_writepage,
 272
 273        TP_PROTO(struct page *page),
 274
 275        TP_ARGS(page)
 276);
 277
 278DEFINE_EVENT(ext3__page_op, ext3_readpage,
 279
 280        TP_PROTO(struct page *page),
 281
 282        TP_ARGS(page)
 283);
 284
 285DEFINE_EVENT(ext3__page_op, ext3_releasepage,
 286
 287        TP_PROTO(struct page *page),
 288
 289        TP_ARGS(page)
 290);
 291
 292TRACE_EVENT(ext3_invalidatepage,
 293        TP_PROTO(struct page *page, unsigned int offset, unsigned int length),
 294
 295        TP_ARGS(page, offset, length),
 296
 297        TP_STRUCT__entry(
 298                __field(        pgoff_t, index                  )
 299                __field(        unsigned int, offset            )
 300                __field(        unsigned int, length            )
 301                __field(        ino_t,  ino                     )
 302                __field(        dev_t,  dev                     )
 303
 304        ),
 305
 306        TP_fast_assign(
 307                __entry->index  = page->index;
 308                __entry->offset = offset;
 309                __entry->length = length;
 310                __entry->ino    = page->mapping->host->i_ino;
 311                __entry->dev    = page->mapping->host->i_sb->s_dev;
 312        ),
 313
 314        TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u",
 315                  MAJOR(__entry->dev), MINOR(__entry->dev),
 316                  (unsigned long) __entry->ino,
 317                  __entry->index, __entry->offset, __entry->length)
 318);
 319
 320TRACE_EVENT(ext3_discard_blocks,
 321        TP_PROTO(struct super_block *sb, unsigned long blk,
 322                        unsigned long count),
 323
 324        TP_ARGS(sb, blk, count),
 325
 326        TP_STRUCT__entry(
 327                __field(        dev_t,          dev             )
 328                __field(        unsigned long,  blk             )
 329                __field(        unsigned long,  count           )
 330
 331        ),
 332
 333        TP_fast_assign(
 334                __entry->dev    = sb->s_dev;
 335                __entry->blk    = blk;
 336                __entry->count  = count;
 337        ),
 338
 339        TP_printk("dev %d,%d blk %lu count %lu",
 340                  MAJOR(__entry->dev), MINOR(__entry->dev),
 341                  __entry->blk, __entry->count)
 342);
 343
 344TRACE_EVENT(ext3_request_blocks,
 345        TP_PROTO(struct inode *inode, unsigned long goal,
 346                 unsigned long count),
 347
 348        TP_ARGS(inode, goal, count),
 349
 350        TP_STRUCT__entry(
 351                __field(        dev_t,  dev                     )
 352                __field(        ino_t,  ino                     )
 353                __field(        unsigned long, count            )
 354                __field(        unsigned long,  goal            )
 355        ),
 356
 357        TP_fast_assign(
 358                __entry->dev    = inode->i_sb->s_dev;
 359                __entry->ino    = inode->i_ino;
 360                __entry->count  = count;
 361                __entry->goal   = goal;
 362        ),
 363
 364        TP_printk("dev %d,%d ino %lu count %lu goal %lu ",
 365                  MAJOR(__entry->dev), MINOR(__entry->dev),
 366                  (unsigned long) __entry->ino,
 367                  __entry->count, __entry->goal)
 368);
 369
 370TRACE_EVENT(ext3_allocate_blocks,
 371        TP_PROTO(struct inode *inode, unsigned long goal,
 372                 unsigned long count, unsigned long block),
 373
 374        TP_ARGS(inode, goal, count, block),
 375
 376        TP_STRUCT__entry(
 377                __field(        dev_t,  dev                     )
 378                __field(        ino_t,  ino                     )
 379                __field(        unsigned long,  block           )
 380                __field(        unsigned long, count            )
 381                __field(        unsigned long,  goal            )
 382        ),
 383
 384        TP_fast_assign(
 385                __entry->dev    = inode->i_sb->s_dev;
 386                __entry->ino    = inode->i_ino;
 387                __entry->block  = block;
 388                __entry->count  = count;
 389                __entry->goal   = goal;
 390        ),
 391
 392        TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu",
 393                  MAJOR(__entry->dev), MINOR(__entry->dev),
 394                  (unsigned long) __entry->ino,
 395                   __entry->count, __entry->block,
 396                  __entry->goal)
 397);
 398
 399TRACE_EVENT(ext3_free_blocks,
 400        TP_PROTO(struct inode *inode, unsigned long block,
 401                 unsigned long count),
 402
 403        TP_ARGS(inode, block, count),
 404
 405        TP_STRUCT__entry(
 406                __field(        dev_t,  dev                     )
 407                __field(        ino_t,  ino                     )
 408                __field(        umode_t, mode                   )
 409                __field(        unsigned long,  block           )
 410                __field(        unsigned long,  count           )
 411        ),
 412
 413        TP_fast_assign(
 414                __entry->dev            = inode->i_sb->s_dev;
 415                __entry->ino            = inode->i_ino;
 416                __entry->mode           = inode->i_mode;
 417                __entry->block          = block;
 418                __entry->count          = count;
 419        ),
 420
 421        TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu",
 422                  MAJOR(__entry->dev), MINOR(__entry->dev),
 423                  (unsigned long) __entry->ino,
 424                  __entry->mode, __entry->block, __entry->count)
 425);
 426
 427TRACE_EVENT(ext3_sync_file_enter,
 428        TP_PROTO(struct file *file, int datasync),
 429
 430        TP_ARGS(file, datasync),
 431
 432        TP_STRUCT__entry(
 433                __field(        dev_t,  dev                     )
 434                __field(        ino_t,  ino                     )
 435                __field(        ino_t,  parent                  )
 436                __field(        int,    datasync                )
 437        ),
 438
 439        TP_fast_assign(
 440                struct dentry *dentry = file->f_path.dentry;
 441
 442                __entry->dev            = dentry->d_inode->i_sb->s_dev;
 443                __entry->ino            = dentry->d_inode->i_ino;
 444                __entry->datasync       = datasync;
 445                __entry->parent         = dentry->d_parent->d_inode->i_ino;
 446        ),
 447
 448        TP_printk("dev %d,%d ino %lu parent %ld datasync %d ",
 449                  MAJOR(__entry->dev), MINOR(__entry->dev),
 450                  (unsigned long) __entry->ino,
 451                  (unsigned long) __entry->parent, __entry->datasync)
 452);
 453
 454TRACE_EVENT(ext3_sync_file_exit,
 455        TP_PROTO(struct inode *inode, int ret),
 456
 457        TP_ARGS(inode, ret),
 458
 459        TP_STRUCT__entry(
 460                __field(        int,    ret                     )
 461                __field(        ino_t,  ino                     )
 462                __field(        dev_t,  dev                     )
 463        ),
 464
 465        TP_fast_assign(
 466                __entry->ret            = ret;
 467                __entry->ino            = inode->i_ino;
 468                __entry->dev            = inode->i_sb->s_dev;
 469        ),
 470
 471        TP_printk("dev %d,%d ino %lu ret %d",
 472                  MAJOR(__entry->dev), MINOR(__entry->dev),
 473                  (unsigned long) __entry->ino,
 474                  __entry->ret)
 475);
 476
 477TRACE_EVENT(ext3_sync_fs,
 478        TP_PROTO(struct super_block *sb, int wait),
 479
 480        TP_ARGS(sb, wait),
 481
 482        TP_STRUCT__entry(
 483                __field(        dev_t,  dev                     )
 484                __field(        int,    wait                    )
 485
 486        ),
 487
 488        TP_fast_assign(
 489                __entry->dev    = sb->s_dev;
 490                __entry->wait   = wait;
 491        ),
 492
 493        TP_printk("dev %d,%d wait %d",
 494                  MAJOR(__entry->dev), MINOR(__entry->dev),
 495                  __entry->wait)
 496);
 497
 498TRACE_EVENT(ext3_rsv_window_add,
 499        TP_PROTO(struct super_block *sb,
 500                 struct ext3_reserve_window_node *rsv_node),
 501
 502        TP_ARGS(sb, rsv_node),
 503
 504        TP_STRUCT__entry(
 505                __field(        unsigned long,  start           )
 506                __field(        unsigned long,  end             )
 507                __field(        dev_t,  dev                     )
 508        ),
 509
 510        TP_fast_assign(
 511                __entry->dev    = sb->s_dev;
 512                __entry->start  = rsv_node->rsv_window._rsv_start;
 513                __entry->end    = rsv_node->rsv_window._rsv_end;
 514        ),
 515
 516        TP_printk("dev %d,%d start %lu end %lu",
 517                  MAJOR(__entry->dev), MINOR(__entry->dev),
 518                  __entry->start, __entry->end)
 519);
 520
 521TRACE_EVENT(ext3_discard_reservation,
 522        TP_PROTO(struct inode *inode,
 523                 struct ext3_reserve_window_node *rsv_node),
 524
 525        TP_ARGS(inode, rsv_node),
 526
 527        TP_STRUCT__entry(
 528                __field(        unsigned long,  start           )
 529                __field(        unsigned long,  end             )
 530                __field(        ino_t,  ino                     )
 531                __field(        dev_t,  dev                     )
 532        ),
 533
 534        TP_fast_assign(
 535                __entry->start  = rsv_node->rsv_window._rsv_start;
 536                __entry->end    = rsv_node->rsv_window._rsv_end;
 537                __entry->ino    = inode->i_ino;
 538                __entry->dev    = inode->i_sb->s_dev;
 539        ),
 540
 541        TP_printk("dev %d,%d ino %lu start %lu end %lu",
 542                  MAJOR(__entry->dev), MINOR(__entry->dev),
 543                  (unsigned long)__entry->ino, __entry->start,
 544                  __entry->end)
 545);
 546
 547TRACE_EVENT(ext3_alloc_new_reservation,
 548        TP_PROTO(struct super_block *sb, unsigned long goal),
 549
 550        TP_ARGS(sb, goal),
 551
 552        TP_STRUCT__entry(
 553                __field(        dev_t,  dev                     )
 554                __field(        unsigned long,  goal            )
 555        ),
 556
 557        TP_fast_assign(
 558                __entry->dev    = sb->s_dev;
 559                __entry->goal   = goal;
 560        ),
 561
 562        TP_printk("dev %d,%d goal %lu",
 563                  MAJOR(__entry->dev), MINOR(__entry->dev),
 564                  __entry->goal)
 565);
 566
 567TRACE_EVENT(ext3_reserved,
 568        TP_PROTO(struct super_block *sb, unsigned long block,
 569                 struct ext3_reserve_window_node *rsv_node),
 570
 571        TP_ARGS(sb, block, rsv_node),
 572
 573        TP_STRUCT__entry(
 574                __field(        unsigned long,  block           )
 575                __field(        unsigned long,  start           )
 576                __field(        unsigned long,  end             )
 577                __field(        dev_t,  dev                     )
 578        ),
 579
 580        TP_fast_assign(
 581                __entry->block  = block;
 582                __entry->start  = rsv_node->rsv_window._rsv_start;
 583                __entry->end    = rsv_node->rsv_window._rsv_end;
 584                __entry->dev    = sb->s_dev;
 585        ),
 586
 587        TP_printk("dev %d,%d block %lu, start %lu end %lu",
 588                  MAJOR(__entry->dev), MINOR(__entry->dev),
 589                  __entry->block, __entry->start, __entry->end)
 590);
 591
 592TRACE_EVENT(ext3_forget,
 593        TP_PROTO(struct inode *inode, int is_metadata, unsigned long block),
 594
 595        TP_ARGS(inode, is_metadata, block),
 596
 597        TP_STRUCT__entry(
 598                __field(        dev_t,  dev                     )
 599                __field(        ino_t,  ino                     )
 600                __field(        umode_t, mode                   )
 601                __field(        int,    is_metadata             )
 602                __field(        unsigned long,  block           )
 603        ),
 604
 605        TP_fast_assign(
 606                __entry->dev    = inode->i_sb->s_dev;
 607                __entry->ino    = inode->i_ino;
 608                __entry->mode   = inode->i_mode;
 609                __entry->is_metadata = is_metadata;
 610                __entry->block  = block;
 611        ),
 612
 613        TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu",
 614                  MAJOR(__entry->dev), MINOR(__entry->dev),
 615                  (unsigned long) __entry->ino,
 616                  __entry->mode, __entry->is_metadata, __entry->block)
 617);
 618
 619TRACE_EVENT(ext3_read_block_bitmap,
 620        TP_PROTO(struct super_block *sb, unsigned int group),
 621
 622        TP_ARGS(sb, group),
 623
 624        TP_STRUCT__entry(
 625                __field(        dev_t,  dev                     )
 626                __field(        __u32,  group                   )
 627
 628        ),
 629
 630        TP_fast_assign(
 631                __entry->dev    = sb->s_dev;
 632                __entry->group  = group;
 633        ),
 634
 635        TP_printk("dev %d,%d group %u",
 636                  MAJOR(__entry->dev), MINOR(__entry->dev),
 637                  __entry->group)
 638);
 639
 640TRACE_EVENT(ext3_direct_IO_enter,
 641        TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
 642
 643        TP_ARGS(inode, offset, len, rw),
 644
 645        TP_STRUCT__entry(
 646                __field(        ino_t,  ino                     )
 647                __field(        dev_t,  dev                     )
 648                __field(        loff_t, pos                     )
 649                __field(        unsigned long,  len             )
 650                __field(        int,    rw                      )
 651        ),
 652
 653        TP_fast_assign(
 654                __entry->ino    = inode->i_ino;
 655                __entry->dev    = inode->i_sb->s_dev;
 656                __entry->pos    = offset;
 657                __entry->len    = len;
 658                __entry->rw     = rw;
 659        ),
 660
 661        TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d",
 662                  MAJOR(__entry->dev), MINOR(__entry->dev),
 663                  (unsigned long) __entry->ino,
 664                  (unsigned long long) __entry->pos, __entry->len,
 665                  __entry->rw)
 666);
 667
 668TRACE_EVENT(ext3_direct_IO_exit,
 669        TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
 670                 int rw, int ret),
 671
 672        TP_ARGS(inode, offset, len, rw, ret),
 673
 674        TP_STRUCT__entry(
 675                __field(        ino_t,  ino                     )
 676                __field(        dev_t,  dev                     )
 677                __field(        loff_t, pos                     )
 678                __field(        unsigned long,  len             )
 679                __field(        int,    rw                      )
 680                __field(        int,    ret                     )
 681        ),
 682
 683        TP_fast_assign(
 684                __entry->ino    = inode->i_ino;
 685                __entry->dev    = inode->i_sb->s_dev;
 686                __entry->pos    = offset;
 687                __entry->len    = len;
 688                __entry->rw     = rw;
 689                __entry->ret    = ret;
 690        ),
 691
 692        TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d",
 693                  MAJOR(__entry->dev), MINOR(__entry->dev),
 694                  (unsigned long) __entry->ino,
 695                  (unsigned long long) __entry->pos, __entry->len,
 696                  __entry->rw, __entry->ret)
 697);
 698
 699TRACE_EVENT(ext3_unlink_enter,
 700        TP_PROTO(struct inode *parent, struct dentry *dentry),
 701
 702        TP_ARGS(parent, dentry),
 703
 704        TP_STRUCT__entry(
 705                __field(        ino_t,  parent                  )
 706                __field(        ino_t,  ino                     )
 707                __field(        loff_t, size                    )
 708                __field(        dev_t,  dev                     )
 709        ),
 710
 711        TP_fast_assign(
 712                __entry->parent         = parent->i_ino;
 713                __entry->ino            = dentry->d_inode->i_ino;
 714                __entry->size           = dentry->d_inode->i_size;
 715                __entry->dev            = dentry->d_inode->i_sb->s_dev;
 716        ),
 717
 718        TP_printk("dev %d,%d ino %lu size %lld parent %ld",
 719                  MAJOR(__entry->dev), MINOR(__entry->dev),
 720                  (unsigned long) __entry->ino,
 721                  (unsigned long long)__entry->size,
 722                  (unsigned long) __entry->parent)
 723);
 724
 725TRACE_EVENT(ext3_unlink_exit,
 726        TP_PROTO(struct dentry *dentry, int ret),
 727
 728        TP_ARGS(dentry, ret),
 729
 730        TP_STRUCT__entry(
 731                __field(        ino_t,  ino                     )
 732                __field(        dev_t,  dev                     )
 733                __field(        int,    ret                     )
 734        ),
 735
 736        TP_fast_assign(
 737                __entry->ino            = dentry->d_inode->i_ino;
 738                __entry->dev            = dentry->d_inode->i_sb->s_dev;
 739                __entry->ret            = ret;
 740        ),
 741
 742        TP_printk("dev %d,%d ino %lu ret %d",
 743                  MAJOR(__entry->dev), MINOR(__entry->dev),
 744                  (unsigned long) __entry->ino,
 745                  __entry->ret)
 746);
 747
 748DECLARE_EVENT_CLASS(ext3__truncate,
 749        TP_PROTO(struct inode *inode),
 750
 751        TP_ARGS(inode),
 752
 753        TP_STRUCT__entry(
 754                __field(        ino_t,          ino             )
 755                __field(        dev_t,          dev             )
 756                __field(        blkcnt_t,       blocks          )
 757        ),
 758
 759        TP_fast_assign(
 760                __entry->ino    = inode->i_ino;
 761                __entry->dev    = inode->i_sb->s_dev;
 762                __entry->blocks = inode->i_blocks;
 763        ),
 764
 765        TP_printk("dev %d,%d ino %lu blocks %lu",
 766                  MAJOR(__entry->dev), MINOR(__entry->dev),
 767                  (unsigned long) __entry->ino, (unsigned long) __entry->blocks)
 768);
 769
 770DEFINE_EVENT(ext3__truncate, ext3_truncate_enter,
 771
 772        TP_PROTO(struct inode *inode),
 773
 774        TP_ARGS(inode)
 775);
 776
 777DEFINE_EVENT(ext3__truncate, ext3_truncate_exit,
 778
 779        TP_PROTO(struct inode *inode),
 780
 781        TP_ARGS(inode)
 782);
 783
 784TRACE_EVENT(ext3_get_blocks_enter,
 785        TP_PROTO(struct inode *inode, unsigned long lblk,
 786                 unsigned long len, int create),
 787
 788        TP_ARGS(inode, lblk, len, create),
 789
 790        TP_STRUCT__entry(
 791                __field(        ino_t,          ino             )
 792                __field(        dev_t,          dev             )
 793                __field(        unsigned long,  lblk            )
 794                __field(        unsigned long,  len             )
 795                __field(        int,            create          )
 796        ),
 797
 798        TP_fast_assign(
 799                __entry->ino    = inode->i_ino;
 800                __entry->dev    = inode->i_sb->s_dev;
 801                __entry->lblk   = lblk;
 802                __entry->len    = len;
 803                __entry->create = create;
 804        ),
 805
 806        TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u",
 807                  MAJOR(__entry->dev), MINOR(__entry->dev),
 808                  (unsigned long) __entry->ino,
 809                  __entry->lblk, __entry->len, __entry->create)
 810);
 811
 812TRACE_EVENT(ext3_get_blocks_exit,
 813        TP_PROTO(struct inode *inode, unsigned long lblk,
 814                 unsigned long pblk, unsigned long len, int ret),
 815
 816        TP_ARGS(inode, lblk, pblk, len, ret),
 817
 818        TP_STRUCT__entry(
 819                __field(        ino_t,          ino             )
 820                __field(        dev_t,          dev             )
 821                __field(        unsigned long,  lblk            )
 822                __field(        unsigned long,  pblk            )
 823                __field(        unsigned long,  len             )
 824                __field(        int,            ret             )
 825        ),
 826
 827        TP_fast_assign(
 828                __entry->ino    = inode->i_ino;
 829                __entry->dev    = inode->i_sb->s_dev;
 830                __entry->lblk   = lblk;
 831                __entry->pblk   = pblk;
 832                __entry->len    = len;
 833                __entry->ret    = ret;
 834        ),
 835
 836        TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d",
 837                  MAJOR(__entry->dev), MINOR(__entry->dev),
 838                  (unsigned long) __entry->ino,
 839                   __entry->lblk, __entry->pblk,
 840                  __entry->len, __entry->ret)
 841);
 842
 843TRACE_EVENT(ext3_load_inode,
 844        TP_PROTO(struct inode *inode),
 845
 846        TP_ARGS(inode),
 847
 848        TP_STRUCT__entry(
 849                __field(        ino_t,  ino             )
 850                __field(        dev_t,  dev             )
 851        ),
 852
 853        TP_fast_assign(
 854                __entry->ino            = inode->i_ino;
 855                __entry->dev            = inode->i_sb->s_dev;
 856        ),
 857
 858        TP_printk("dev %d,%d ino %lu",
 859                  MAJOR(__entry->dev), MINOR(__entry->dev),
 860                  (unsigned long) __entry->ino)
 861);
 862
 863#endif /* _TRACE_EXT3_H */
 864
 865/* This part must be outside protection */
 866#include <trace/define_trace.h>
 867