Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / trace / events / 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
9 TRACE_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
39 TRACE_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
61 TRACE_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
86 TRACE_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
108 TRACE_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
130 TRACE_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 %pS",
148                   MAJOR(__entry->dev), MINOR(__entry->dev),
149                   (unsigned long) __entry->ino, (void *)__entry->ip)
150 );
151
152 TRACE_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
181 DECLARE_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
210 DEFINE_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
218 DEFINE_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
226 DEFINE_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
234 DECLARE_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
257 DEFINE_EVENT(ext3__page_op, ext3_ordered_writepage,
258
259         TP_PROTO(struct page *page),
260
261         TP_ARGS(page)
262 );
263
264 DEFINE_EVENT(ext3__page_op, ext3_writeback_writepage,
265
266         TP_PROTO(struct page *page),
267
268         TP_ARGS(page)
269 );
270
271 DEFINE_EVENT(ext3__page_op, ext3_journalled_writepage,
272
273         TP_PROTO(struct page *page),
274
275         TP_ARGS(page)
276 );
277
278 DEFINE_EVENT(ext3__page_op, ext3_readpage,
279
280         TP_PROTO(struct page *page),
281
282         TP_ARGS(page)
283 );
284
285 DEFINE_EVENT(ext3__page_op, ext3_releasepage,
286
287         TP_PROTO(struct page *page),
288
289         TP_ARGS(page)
290 );
291
292 TRACE_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
320 TRACE_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
344 TRACE_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
370 TRACE_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
399 TRACE_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
427 TRACE_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            = d_inode(dentry)->i_sb->s_dev;
443                 __entry->ino            = d_inode(dentry)->i_ino;
444                 __entry->datasync       = datasync;
445                 __entry->parent         = d_inode(dentry->d_parent)->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
454 TRACE_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
477 TRACE_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
498 TRACE_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
521 TRACE_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
547 TRACE_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
567 TRACE_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
592 TRACE_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
619 TRACE_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
640 TRACE_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
668 TRACE_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
699 TRACE_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            = d_inode(dentry)->i_ino;
714                 __entry->size           = d_inode(dentry)->i_size;
715                 __entry->dev            = d_inode(dentry)->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
725 TRACE_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            = d_inode(dentry)->i_ino;
738                 __entry->dev            = d_inode(dentry)->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
748 DECLARE_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
770 DEFINE_EVENT(ext3__truncate, ext3_truncate_enter,
771
772         TP_PROTO(struct inode *inode),
773
774         TP_ARGS(inode)
775 );
776
777 DEFINE_EVENT(ext3__truncate, ext3_truncate_exit,
778
779         TP_PROTO(struct inode *inode),
780
781         TP_ARGS(inode)
782 );
783
784 TRACE_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
812 TRACE_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
843 TRACE_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>