• 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 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		= dentry->d_inode->i_sb->s_dev;
443 		__entry->ino		= dentry->d_inode->i_ino;
444 		__entry->datasync	= datasync;
445 		__entry->parent		= dentry->d_parent->d_inode->i_ino;
446 	),
447 
448 	TP_printk("dev %d,%d ino %lu parent %ld datasync %d ",
449 		  MAJOR(__entry->dev), MINOR(__entry->dev),
450 		  (unsigned long) __entry->ino,
451 		  (unsigned long) __entry->parent, __entry->datasync)
452 );
453 
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		= dentry->d_inode->i_ino;
714 		__entry->size		= dentry->d_inode->i_size;
715 		__entry->dev		= dentry->d_inode->i_sb->s_dev;
716 	),
717 
718 	TP_printk("dev %d,%d ino %lu size %lld parent %ld",
719 		  MAJOR(__entry->dev), MINOR(__entry->dev),
720 		  (unsigned long) __entry->ino,
721 		  (unsigned long long)__entry->size,
722 		  (unsigned long) __entry->parent)
723 );
724 
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		= dentry->d_inode->i_ino;
738 		__entry->dev		= dentry->d_inode->i_sb->s_dev;
739 		__entry->ret		= ret;
740 	),
741 
742 	TP_printk("dev %d,%d ino %lu ret %d",
743 		  MAJOR(__entry->dev), MINOR(__entry->dev),
744 		  (unsigned long) __entry->ino,
745 		  __entry->ret)
746 );
747 
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>
867