Revert "net: validate variable length ll headers"
[pandora-kernel.git] / 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    = inode->i_uid;
28                 __entry->gid    = inode->i_gid;
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 %pF",
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 long offset),
294
295         TP_ARGS(page, offset),
296
297         TP_STRUCT__entry(
298                 __field(        pgoff_t, index                  )
299                 __field(        unsigned long, offset           )
300                 __field(        ino_t,  ino                     )
301                 __field(        dev_t,  dev                     )
302
303         ),
304
305         TP_fast_assign(
306                 __entry->index  = page->index;
307                 __entry->offset = offset;
308                 __entry->ino    = page->mapping->host->i_ino;
309                 __entry->dev    = page->mapping->host->i_sb->s_dev;
310         ),
311
312         TP_printk("dev %d,%d ino %lu page_index %lu offset %lu",
313                   MAJOR(__entry->dev), MINOR(__entry->dev),
314                   (unsigned long) __entry->ino,
315                   __entry->index, __entry->offset)
316 );
317
318 TRACE_EVENT(ext3_discard_blocks,
319         TP_PROTO(struct super_block *sb, unsigned long blk,
320                         unsigned long count),
321
322         TP_ARGS(sb, blk, count),
323
324         TP_STRUCT__entry(
325                 __field(        dev_t,          dev             )
326                 __field(        unsigned long,  blk             )
327                 __field(        unsigned long,  count           )
328
329         ),
330
331         TP_fast_assign(
332                 __entry->dev    = sb->s_dev;
333                 __entry->blk    = blk;
334                 __entry->count  = count;
335         ),
336
337         TP_printk("dev %d,%d blk %lu count %lu",
338                   MAJOR(__entry->dev), MINOR(__entry->dev),
339                   __entry->blk, __entry->count)
340 );
341
342 TRACE_EVENT(ext3_request_blocks,
343         TP_PROTO(struct inode *inode, unsigned long goal,
344                  unsigned long count),
345
346         TP_ARGS(inode, goal, count),
347
348         TP_STRUCT__entry(
349                 __field(        dev_t,  dev                     )
350                 __field(        ino_t,  ino                     )
351                 __field(        unsigned long, count            )
352                 __field(        unsigned long,  goal            )
353         ),
354
355         TP_fast_assign(
356                 __entry->dev    = inode->i_sb->s_dev;
357                 __entry->ino    = inode->i_ino;
358                 __entry->count  = count;
359                 __entry->goal   = goal;
360         ),
361
362         TP_printk("dev %d,%d ino %lu count %lu goal %lu ",
363                   MAJOR(__entry->dev), MINOR(__entry->dev),
364                   (unsigned long) __entry->ino,
365                   __entry->count, __entry->goal)
366 );
367
368 TRACE_EVENT(ext3_allocate_blocks,
369         TP_PROTO(struct inode *inode, unsigned long goal,
370                  unsigned long count, unsigned long block),
371
372         TP_ARGS(inode, goal, count, block),
373
374         TP_STRUCT__entry(
375                 __field(        dev_t,  dev                     )
376                 __field(        ino_t,  ino                     )
377                 __field(        unsigned long,  block           )
378                 __field(        unsigned long, count            )
379                 __field(        unsigned long,  goal            )
380         ),
381
382         TP_fast_assign(
383                 __entry->dev    = inode->i_sb->s_dev;
384                 __entry->ino    = inode->i_ino;
385                 __entry->block  = block;
386                 __entry->count  = count;
387                 __entry->goal   = goal;
388         ),
389
390         TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu",
391                   MAJOR(__entry->dev), MINOR(__entry->dev),
392                   (unsigned long) __entry->ino,
393                    __entry->count, __entry->block,
394                   __entry->goal)
395 );
396
397 TRACE_EVENT(ext3_free_blocks,
398         TP_PROTO(struct inode *inode, unsigned long block,
399                  unsigned long count),
400
401         TP_ARGS(inode, block, count),
402
403         TP_STRUCT__entry(
404                 __field(        dev_t,  dev                     )
405                 __field(        ino_t,  ino                     )
406                 __field(        umode_t, mode                   )
407                 __field(        unsigned long,  block           )
408                 __field(        unsigned long,  count           )
409         ),
410
411         TP_fast_assign(
412                 __entry->dev            = inode->i_sb->s_dev;
413                 __entry->ino            = inode->i_ino;
414                 __entry->mode           = inode->i_mode;
415                 __entry->block          = block;
416                 __entry->count          = count;
417         ),
418
419         TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu",
420                   MAJOR(__entry->dev), MINOR(__entry->dev),
421                   (unsigned long) __entry->ino,
422                   __entry->mode, __entry->block, __entry->count)
423 );
424
425 TRACE_EVENT(ext3_sync_file_enter,
426         TP_PROTO(struct file *file, int datasync),
427
428         TP_ARGS(file, datasync),
429
430         TP_STRUCT__entry(
431                 __field(        dev_t,  dev                     )
432                 __field(        ino_t,  ino                     )
433                 __field(        ino_t,  parent                  )
434                 __field(        int,    datasync                )
435         ),
436
437         TP_fast_assign(
438                 struct dentry *dentry = file->f_path.dentry;
439
440                 __entry->dev            = dentry->d_inode->i_sb->s_dev;
441                 __entry->ino            = dentry->d_inode->i_ino;
442                 __entry->datasync       = datasync;
443                 __entry->parent         = dentry->d_parent->d_inode->i_ino;
444         ),
445
446         TP_printk("dev %d,%d ino %lu parent %ld datasync %d ",
447                   MAJOR(__entry->dev), MINOR(__entry->dev),
448                   (unsigned long) __entry->ino,
449                   (unsigned long) __entry->parent, __entry->datasync)
450 );
451
452 TRACE_EVENT(ext3_sync_file_exit,
453         TP_PROTO(struct inode *inode, int ret),
454
455         TP_ARGS(inode, ret),
456
457         TP_STRUCT__entry(
458                 __field(        int,    ret                     )
459                 __field(        ino_t,  ino                     )
460                 __field(        dev_t,  dev                     )
461         ),
462
463         TP_fast_assign(
464                 __entry->ret            = ret;
465                 __entry->ino            = inode->i_ino;
466                 __entry->dev            = inode->i_sb->s_dev;
467         ),
468
469         TP_printk("dev %d,%d ino %lu ret %d",
470                   MAJOR(__entry->dev), MINOR(__entry->dev),
471                   (unsigned long) __entry->ino,
472                   __entry->ret)
473 );
474
475 TRACE_EVENT(ext3_sync_fs,
476         TP_PROTO(struct super_block *sb, int wait),
477
478         TP_ARGS(sb, wait),
479
480         TP_STRUCT__entry(
481                 __field(        dev_t,  dev                     )
482                 __field(        int,    wait                    )
483
484         ),
485
486         TP_fast_assign(
487                 __entry->dev    = sb->s_dev;
488                 __entry->wait   = wait;
489         ),
490
491         TP_printk("dev %d,%d wait %d",
492                   MAJOR(__entry->dev), MINOR(__entry->dev),
493                   __entry->wait)
494 );
495
496 TRACE_EVENT(ext3_rsv_window_add,
497         TP_PROTO(struct super_block *sb,
498                  struct ext3_reserve_window_node *rsv_node),
499
500         TP_ARGS(sb, rsv_node),
501
502         TP_STRUCT__entry(
503                 __field(        unsigned long,  start           )
504                 __field(        unsigned long,  end             )
505                 __field(        dev_t,  dev                     )
506         ),
507
508         TP_fast_assign(
509                 __entry->dev    = sb->s_dev;
510                 __entry->start  = rsv_node->rsv_window._rsv_start;
511                 __entry->end    = rsv_node->rsv_window._rsv_end;
512         ),
513
514         TP_printk("dev %d,%d start %lu end %lu",
515                   MAJOR(__entry->dev), MINOR(__entry->dev),
516                   __entry->start, __entry->end)
517 );
518
519 TRACE_EVENT(ext3_discard_reservation,
520         TP_PROTO(struct inode *inode,
521                  struct ext3_reserve_window_node *rsv_node),
522
523         TP_ARGS(inode, rsv_node),
524
525         TP_STRUCT__entry(
526                 __field(        unsigned long,  start           )
527                 __field(        unsigned long,  end             )
528                 __field(        ino_t,  ino                     )
529                 __field(        dev_t,  dev                     )
530         ),
531
532         TP_fast_assign(
533                 __entry->start  = rsv_node->rsv_window._rsv_start;
534                 __entry->end    = rsv_node->rsv_window._rsv_end;
535                 __entry->ino    = inode->i_ino;
536                 __entry->dev    = inode->i_sb->s_dev;
537         ),
538
539         TP_printk("dev %d,%d ino %lu start %lu end %lu",
540                   MAJOR(__entry->dev), MINOR(__entry->dev),
541                   (unsigned long)__entry->ino, __entry->start,
542                   __entry->end)
543 );
544
545 TRACE_EVENT(ext3_alloc_new_reservation,
546         TP_PROTO(struct super_block *sb, unsigned long goal),
547
548         TP_ARGS(sb, goal),
549
550         TP_STRUCT__entry(
551                 __field(        dev_t,  dev                     )
552                 __field(        unsigned long,  goal            )
553         ),
554
555         TP_fast_assign(
556                 __entry->dev    = sb->s_dev;
557                 __entry->goal   = goal;
558         ),
559
560         TP_printk("dev %d,%d goal %lu",
561                   MAJOR(__entry->dev), MINOR(__entry->dev),
562                   __entry->goal)
563 );
564
565 TRACE_EVENT(ext3_reserved,
566         TP_PROTO(struct super_block *sb, unsigned long block,
567                  struct ext3_reserve_window_node *rsv_node),
568
569         TP_ARGS(sb, block, rsv_node),
570
571         TP_STRUCT__entry(
572                 __field(        unsigned long,  block           )
573                 __field(        unsigned long,  start           )
574                 __field(        unsigned long,  end             )
575                 __field(        dev_t,  dev                     )
576         ),
577
578         TP_fast_assign(
579                 __entry->block  = block;
580                 __entry->start  = rsv_node->rsv_window._rsv_start;
581                 __entry->end    = rsv_node->rsv_window._rsv_end;
582                 __entry->dev    = sb->s_dev;
583         ),
584
585         TP_printk("dev %d,%d block %lu, start %lu end %lu",
586                   MAJOR(__entry->dev), MINOR(__entry->dev),
587                   __entry->block, __entry->start, __entry->end)
588 );
589
590 TRACE_EVENT(ext3_forget,
591         TP_PROTO(struct inode *inode, int is_metadata, unsigned long block),
592
593         TP_ARGS(inode, is_metadata, block),
594
595         TP_STRUCT__entry(
596                 __field(        dev_t,  dev                     )
597                 __field(        ino_t,  ino                     )
598                 __field(        umode_t, mode                   )
599                 __field(        int,    is_metadata             )
600                 __field(        unsigned long,  block           )
601         ),
602
603         TP_fast_assign(
604                 __entry->dev    = inode->i_sb->s_dev;
605                 __entry->ino    = inode->i_ino;
606                 __entry->mode   = inode->i_mode;
607                 __entry->is_metadata = is_metadata;
608                 __entry->block  = block;
609         ),
610
611         TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu",
612                   MAJOR(__entry->dev), MINOR(__entry->dev),
613                   (unsigned long) __entry->ino,
614                   __entry->mode, __entry->is_metadata, __entry->block)
615 );
616
617 TRACE_EVENT(ext3_read_block_bitmap,
618         TP_PROTO(struct super_block *sb, unsigned int group),
619
620         TP_ARGS(sb, group),
621
622         TP_STRUCT__entry(
623                 __field(        dev_t,  dev                     )
624                 __field(        __u32,  group                   )
625
626         ),
627
628         TP_fast_assign(
629                 __entry->dev    = sb->s_dev;
630                 __entry->group  = group;
631         ),
632
633         TP_printk("dev %d,%d group %u",
634                   MAJOR(__entry->dev), MINOR(__entry->dev),
635                   __entry->group)
636 );
637
638 TRACE_EVENT(ext3_direct_IO_enter,
639         TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw),
640
641         TP_ARGS(inode, offset, len, rw),
642
643         TP_STRUCT__entry(
644                 __field(        ino_t,  ino                     )
645                 __field(        dev_t,  dev                     )
646                 __field(        loff_t, pos                     )
647                 __field(        unsigned long,  len             )
648                 __field(        int,    rw                      )
649         ),
650
651         TP_fast_assign(
652                 __entry->ino    = inode->i_ino;
653                 __entry->dev    = inode->i_sb->s_dev;
654                 __entry->pos    = offset;
655                 __entry->len    = len;
656                 __entry->rw     = rw;
657         ),
658
659         TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d",
660                   MAJOR(__entry->dev), MINOR(__entry->dev),
661                   (unsigned long) __entry->ino,
662                   (unsigned long long) __entry->pos, __entry->len,
663                   __entry->rw)
664 );
665
666 TRACE_EVENT(ext3_direct_IO_exit,
667         TP_PROTO(struct inode *inode, loff_t offset, unsigned long len,
668                  int rw, int ret),
669
670         TP_ARGS(inode, offset, len, rw, ret),
671
672         TP_STRUCT__entry(
673                 __field(        ino_t,  ino                     )
674                 __field(        dev_t,  dev                     )
675                 __field(        loff_t, pos                     )
676                 __field(        unsigned long,  len             )
677                 __field(        int,    rw                      )
678                 __field(        int,    ret                     )
679         ),
680
681         TP_fast_assign(
682                 __entry->ino    = inode->i_ino;
683                 __entry->dev    = inode->i_sb->s_dev;
684                 __entry->pos    = offset;
685                 __entry->len    = len;
686                 __entry->rw     = rw;
687                 __entry->ret    = ret;
688         ),
689
690         TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d",
691                   MAJOR(__entry->dev), MINOR(__entry->dev),
692                   (unsigned long) __entry->ino,
693                   (unsigned long long) __entry->pos, __entry->len,
694                   __entry->rw, __entry->ret)
695 );
696
697 TRACE_EVENT(ext3_unlink_enter,
698         TP_PROTO(struct inode *parent, struct dentry *dentry),
699
700         TP_ARGS(parent, dentry),
701
702         TP_STRUCT__entry(
703                 __field(        ino_t,  parent                  )
704                 __field(        ino_t,  ino                     )
705                 __field(        loff_t, size                    )
706                 __field(        dev_t,  dev                     )
707         ),
708
709         TP_fast_assign(
710                 __entry->parent         = parent->i_ino;
711                 __entry->ino            = dentry->d_inode->i_ino;
712                 __entry->size           = dentry->d_inode->i_size;
713                 __entry->dev            = dentry->d_inode->i_sb->s_dev;
714         ),
715
716         TP_printk("dev %d,%d ino %lu size %lld parent %ld",
717                   MAJOR(__entry->dev), MINOR(__entry->dev),
718                   (unsigned long) __entry->ino,
719                   (unsigned long long)__entry->size,
720                   (unsigned long) __entry->parent)
721 );
722
723 TRACE_EVENT(ext3_unlink_exit,
724         TP_PROTO(struct dentry *dentry, int ret),
725
726         TP_ARGS(dentry, ret),
727
728         TP_STRUCT__entry(
729                 __field(        ino_t,  ino                     )
730                 __field(        dev_t,  dev                     )
731                 __field(        int,    ret                     )
732         ),
733
734         TP_fast_assign(
735                 __entry->ino            = dentry->d_inode->i_ino;
736                 __entry->dev            = dentry->d_inode->i_sb->s_dev;
737                 __entry->ret            = ret;
738         ),
739
740         TP_printk("dev %d,%d ino %lu ret %d",
741                   MAJOR(__entry->dev), MINOR(__entry->dev),
742                   (unsigned long) __entry->ino,
743                   __entry->ret)
744 );
745
746 DECLARE_EVENT_CLASS(ext3__truncate,
747         TP_PROTO(struct inode *inode),
748
749         TP_ARGS(inode),
750
751         TP_STRUCT__entry(
752                 __field(        ino_t,          ino             )
753                 __field(        dev_t,          dev             )
754                 __field(        blkcnt_t,       blocks          )
755         ),
756
757         TP_fast_assign(
758                 __entry->ino    = inode->i_ino;
759                 __entry->dev    = inode->i_sb->s_dev;
760                 __entry->blocks = inode->i_blocks;
761         ),
762
763         TP_printk("dev %d,%d ino %lu blocks %lu",
764                   MAJOR(__entry->dev), MINOR(__entry->dev),
765                   (unsigned long) __entry->ino, (unsigned long) __entry->blocks)
766 );
767
768 DEFINE_EVENT(ext3__truncate, ext3_truncate_enter,
769
770         TP_PROTO(struct inode *inode),
771
772         TP_ARGS(inode)
773 );
774
775 DEFINE_EVENT(ext3__truncate, ext3_truncate_exit,
776
777         TP_PROTO(struct inode *inode),
778
779         TP_ARGS(inode)
780 );
781
782 TRACE_EVENT(ext3_get_blocks_enter,
783         TP_PROTO(struct inode *inode, unsigned long lblk,
784                  unsigned long len, int create),
785
786         TP_ARGS(inode, lblk, len, create),
787
788         TP_STRUCT__entry(
789                 __field(        ino_t,          ino             )
790                 __field(        dev_t,          dev             )
791                 __field(        unsigned long,  lblk            )
792                 __field(        unsigned long,  len             )
793                 __field(        int,            create          )
794         ),
795
796         TP_fast_assign(
797                 __entry->ino    = inode->i_ino;
798                 __entry->dev    = inode->i_sb->s_dev;
799                 __entry->lblk   = lblk;
800                 __entry->len    = len;
801                 __entry->create = create;
802         ),
803
804         TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u",
805                   MAJOR(__entry->dev), MINOR(__entry->dev),
806                   (unsigned long) __entry->ino,
807                   __entry->lblk, __entry->len, __entry->create)
808 );
809
810 TRACE_EVENT(ext3_get_blocks_exit,
811         TP_PROTO(struct inode *inode, unsigned long lblk,
812                  unsigned long pblk, unsigned long len, int ret),
813
814         TP_ARGS(inode, lblk, pblk, len, ret),
815
816         TP_STRUCT__entry(
817                 __field(        ino_t,          ino             )
818                 __field(        dev_t,          dev             )
819                 __field(        unsigned long,  lblk            )
820                 __field(        unsigned long,  pblk            )
821                 __field(        unsigned long,  len             )
822                 __field(        int,            ret             )
823         ),
824
825         TP_fast_assign(
826                 __entry->ino    = inode->i_ino;
827                 __entry->dev    = inode->i_sb->s_dev;
828                 __entry->lblk   = lblk;
829                 __entry->pblk   = pblk;
830                 __entry->len    = len;
831                 __entry->ret    = ret;
832         ),
833
834         TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d",
835                   MAJOR(__entry->dev), MINOR(__entry->dev),
836                   (unsigned long) __entry->ino,
837                    __entry->lblk, __entry->pblk,
838                   __entry->len, __entry->ret)
839 );
840
841 TRACE_EVENT(ext3_load_inode,
842         TP_PROTO(struct inode *inode),
843
844         TP_ARGS(inode),
845
846         TP_STRUCT__entry(
847                 __field(        ino_t,  ino             )
848                 __field(        dev_t,  dev             )
849         ),
850
851         TP_fast_assign(
852                 __entry->ino            = inode->i_ino;
853                 __entry->dev            = inode->i_sb->s_dev;
854         ),
855
856         TP_printk("dev %d,%d ino %lu",
857                   MAJOR(__entry->dev), MINOR(__entry->dev),
858                   (unsigned long) __entry->ino)
859 );
860
861 #endif /* _TRACE_EXT3_H */
862
863 /* This part must be outside protection */
864 #include <trace/define_trace.h>