• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 %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>
865