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