xref: /openbmc/linux/fs/ocfs2/ocfs2_trace.h (revision b5770f98)
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM ocfs2
3 
4 #if !defined(_TRACE_OCFS2_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_OCFS2_H
6 
7 #include <linux/tracepoint.h>
8 
9 DECLARE_EVENT_CLASS(ocfs2__int,
10 	TP_PROTO(int num),
11 	TP_ARGS(num),
12 	TP_STRUCT__entry(
13 		__field(int, num)
14 	),
15 	TP_fast_assign(
16 		__entry->num = num;
17 	),
18 	TP_printk("%d", __entry->num)
19 );
20 
21 #define DEFINE_OCFS2_INT_EVENT(name)	\
22 DEFINE_EVENT(ocfs2__int, name,	\
23 	TP_PROTO(int num),	\
24 	TP_ARGS(num))
25 
26 DECLARE_EVENT_CLASS(ocfs2__uint,
27 	TP_PROTO(unsigned int num),
28 	TP_ARGS(num),
29 	TP_STRUCT__entry(
30 		__field(	unsigned int,	num		)
31 	),
32 	TP_fast_assign(
33 		__entry->num	= 	num;
34 	),
35 	TP_printk("%u", __entry->num)
36 );
37 
38 #define DEFINE_OCFS2_UINT_EVENT(name)	\
39 DEFINE_EVENT(ocfs2__uint, name,	\
40 	TP_PROTO(unsigned int num),	\
41 	TP_ARGS(num))
42 
43 DECLARE_EVENT_CLASS(ocfs2__ull,
44 	TP_PROTO(unsigned long long blkno),
45 	TP_ARGS(blkno),
46 	TP_STRUCT__entry(
47 		__field(unsigned long long, blkno)
48 	),
49 	TP_fast_assign(
50 		__entry->blkno = blkno;
51 	),
52 	TP_printk("%llu", __entry->blkno)
53 );
54 
55 #define DEFINE_OCFS2_ULL_EVENT(name)	\
56 DEFINE_EVENT(ocfs2__ull, name,	\
57 	TP_PROTO(unsigned long long num),	\
58 	TP_ARGS(num))
59 
60 DECLARE_EVENT_CLASS(ocfs2__int_int,
61 	TP_PROTO(int value1, int value2),
62 	TP_ARGS(value1, value2),
63 	TP_STRUCT__entry(
64 		__field(int, value1)
65 		__field(int, value2)
66 	),
67 	TP_fast_assign(
68 		__entry->value1	= value1;
69 		__entry->value2	= value2;
70 	),
71 	TP_printk("%d %d", __entry->value1, __entry->value2)
72 );
73 
74 #define DEFINE_OCFS2_INT_INT_EVENT(name)	\
75 DEFINE_EVENT(ocfs2__int_int, name,	\
76 	TP_PROTO(int val1, int val2),	\
77 	TP_ARGS(val1, val2))
78 
79 DECLARE_EVENT_CLASS(ocfs2__uint_uint,
80 	TP_PROTO(unsigned int value1, unsigned int value2),
81 	TP_ARGS(value1, value2),
82 	TP_STRUCT__entry(
83 		__field(unsigned int, value1)
84 		__field(unsigned int, value2)
85 	),
86 	TP_fast_assign(
87 		__entry->value1 = value1;
88 		__entry->value2 = value2;
89 	),
90 	TP_printk("%u %u", __entry->value1, __entry->value2)
91 );
92 
93 #define DEFINE_OCFS2_UINT_UINT_EVENT(name)	\
94 DEFINE_EVENT(ocfs2__uint_uint, name,	\
95 	TP_PROTO(unsigned int val1, unsigned int val2),	\
96 	TP_ARGS(val1, val2))
97 
98 DECLARE_EVENT_CLASS(ocfs2__ull_uint,
99 	TP_PROTO(unsigned long long value1, unsigned int value2),
100 	TP_ARGS(value1, value2),
101 	TP_STRUCT__entry(
102 		__field(unsigned long long, value1)
103 		__field(unsigned int, value2)
104 	),
105 	TP_fast_assign(
106 		__entry->value1 = value1;
107 		__entry->value2 = value2;
108 	),
109 	TP_printk("%llu %u", __entry->value1, __entry->value2)
110 );
111 
112 #define DEFINE_OCFS2_ULL_UINT_EVENT(name)	\
113 DEFINE_EVENT(ocfs2__ull_uint, name,	\
114 	TP_PROTO(unsigned long long val1, unsigned int val2),	\
115 	TP_ARGS(val1, val2))
116 
117 DECLARE_EVENT_CLASS(ocfs2__ull_int,
118 	TP_PROTO(unsigned long long value1, int value2),
119 	TP_ARGS(value1, value2),
120 	TP_STRUCT__entry(
121 		__field(unsigned long long, value1)
122 		__field(int, value2)
123 	),
124 	TP_fast_assign(
125 		__entry->value1	= value1;
126 		__entry->value2	= value2;
127 	),
128 	TP_printk("%llu %d", __entry->value1, __entry->value2)
129 );
130 
131 #define DEFINE_OCFS2_ULL_INT_EVENT(name)	\
132 DEFINE_EVENT(ocfs2__ull_int, name,	\
133 	TP_PROTO(unsigned long long val1, int val2),	\
134 	TP_ARGS(val1, val2))
135 
136 DECLARE_EVENT_CLASS(ocfs2__ull_ull,
137 	TP_PROTO(unsigned long long value1, unsigned long long value2),
138 	TP_ARGS(value1, value2),
139 	TP_STRUCT__entry(
140 		__field(unsigned long long, value1)
141 		__field(unsigned long long, value2)
142 	),
143 	TP_fast_assign(
144 		__entry->value1 = value1;
145 		__entry->value2 = value2;
146 	),
147 	TP_printk("%llu %llu", __entry->value1, __entry->value2)
148 );
149 
150 #define DEFINE_OCFS2_ULL_ULL_EVENT(name)	\
151 DEFINE_EVENT(ocfs2__ull_ull, name,	\
152 	TP_PROTO(unsigned long long val1, unsigned long long val2),	\
153 	TP_ARGS(val1, val2))
154 
155 DECLARE_EVENT_CLASS(ocfs2__ull_ull_uint,
156 	TP_PROTO(unsigned long long value1,
157 		 unsigned long long value2, unsigned int value3),
158 	TP_ARGS(value1, value2, value3),
159 	TP_STRUCT__entry(
160 		__field(unsigned long long, value1)
161 		__field(unsigned long long, value2)
162 		__field(unsigned int, value3)
163 	),
164 	TP_fast_assign(
165 		__entry->value1 = value1;
166 		__entry->value2 = value2;
167 		__entry->value3 = value3;
168 	),
169 	TP_printk("%llu %llu %u",
170 		  __entry->value1, __entry->value2, __entry->value3)
171 );
172 
173 #define DEFINE_OCFS2_ULL_ULL_UINT_EVENT(name)	\
174 DEFINE_EVENT(ocfs2__ull_ull_uint, name,	\
175 	TP_PROTO(unsigned long long val1,	\
176 		 unsigned long long val2, unsigned int val3),	\
177 	TP_ARGS(val1, val2, val3))
178 
179 DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint,
180 	TP_PROTO(unsigned long long value1,
181 		 unsigned int value2, unsigned int value3),
182 	TP_ARGS(value1, value2, value3),
183 	TP_STRUCT__entry(
184 		__field(unsigned long long, value1)
185 		__field(unsigned int, value2)
186 		__field(unsigned int, value3)
187 	),
188 	TP_fast_assign(
189 		__entry->value1 = value1;
190 		__entry->value2 = value2;
191 		__entry->value3	= value3;
192 	),
193 	TP_printk("%llu %u %u", __entry->value1,
194 		  __entry->value2, __entry->value3)
195 );
196 
197 #define DEFINE_OCFS2_ULL_UINT_UINT_EVENT(name)	\
198 DEFINE_EVENT(ocfs2__ull_uint_uint, name,	\
199 	TP_PROTO(unsigned long long val1,	\
200 		 unsigned int val2, unsigned int val3),	\
201 	TP_ARGS(val1, val2, val3))
202 
203 DECLARE_EVENT_CLASS(ocfs2__uint_uint_uint,
204 	TP_PROTO(unsigned int value1, unsigned int value2,
205 		 unsigned int value3),
206 	TP_ARGS(value1, value2, value3),
207 	TP_STRUCT__entry(
208 		__field(	unsigned int,	value1		)
209 		__field(	unsigned int,	value2		)
210 		__field(	unsigned int,	value3		)
211 	),
212 	TP_fast_assign(
213 		__entry->value1	= 	value1;
214 		__entry->value2	= 	value2;
215 		__entry->value3	= 	value3;
216 	),
217 	TP_printk("%u %u %u", __entry->value1, __entry->value2, __entry->value3)
218 );
219 
220 #define DEFINE_OCFS2_UINT_UINT_UINT_EVENT(name)	\
221 DEFINE_EVENT(ocfs2__uint_uint_uint, name,	\
222 	TP_PROTO(unsigned int value1, unsigned int value2,	\
223 		 unsigned int value3),	\
224 	TP_ARGS(value1, value2, value3))
225 
226 DECLARE_EVENT_CLASS(ocfs2__ull_ull_ull,
227 	TP_PROTO(unsigned long long value1,
228 		 unsigned long long value2, unsigned long long value3),
229 	TP_ARGS(value1, value2, value3),
230 	TP_STRUCT__entry(
231 		__field(unsigned long long, value1)
232 		__field(unsigned long long, value2)
233 		__field(unsigned long long, value3)
234 	),
235 	TP_fast_assign(
236 		__entry->value1 = value1;
237 		__entry->value2 = value2;
238 		__entry->value3 = value3;
239 	),
240 	TP_printk("%llu %llu %llu",
241 		  __entry->value1, __entry->value2, __entry->value3)
242 );
243 
244 #define DEFINE_OCFS2_ULL_ULL_ULL_EVENT(name)	\
245 DEFINE_EVENT(ocfs2__ull_ull_ull, name,	\
246 	TP_PROTO(unsigned long long value1, unsigned long long value2,	\
247 		 unsigned long long value3),	\
248 	TP_ARGS(value1, value2, value3))
249 
250 DECLARE_EVENT_CLASS(ocfs2__ull_int_int_int,
251 	TP_PROTO(unsigned long long ull, int value1, int value2, int value3),
252 	TP_ARGS(ull, value1, value2, value3),
253 	TP_STRUCT__entry(
254 		__field(	unsigned long long,	ull	)
255 		__field(	int,	value1			)
256 		__field(	int,	value2			)
257 		__field(	int,	value3			)
258 	),
259 	TP_fast_assign(
260 		__entry->ull		= ull;
261 		__entry->value1		= value1;
262 		__entry->value2		= value2;
263 		__entry->value3		= value3;
264 	),
265 	TP_printk("%llu %d %d %d",
266 		  __entry->ull, __entry->value1,
267 		  __entry->value2, __entry->value3)
268 );
269 
270 #define DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(name)	\
271 DEFINE_EVENT(ocfs2__ull_int_int_int, name,	\
272 	TP_PROTO(unsigned long long ull, int value1,	\
273 		 int value2, int value3),	\
274 	TP_ARGS(ull, value1, value2, value3))
275 
276 DECLARE_EVENT_CLASS(ocfs2__ull_uint_uint_uint,
277 	TP_PROTO(unsigned long long ull, unsigned int value1,
278 		 unsigned int value2, unsigned int value3),
279 	TP_ARGS(ull, value1, value2, value3),
280 	TP_STRUCT__entry(
281 		__field(unsigned long long, ull)
282 		__field(unsigned int, value1)
283 		__field(unsigned int, value2)
284 		__field(unsigned int, value3)
285 	),
286 	TP_fast_assign(
287 		__entry->ull = ull;
288 		__entry->value1 = value1;
289 		__entry->value2	= value2;
290 		__entry->value3	= value3;
291 	),
292 	TP_printk("%llu %u %u %u",
293 		  __entry->ull, __entry->value1,
294 		  __entry->value2, __entry->value3)
295 );
296 
297 #define DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(name)	\
298 DEFINE_EVENT(ocfs2__ull_uint_uint_uint, name,	\
299 	TP_PROTO(unsigned long long ull, unsigned int value1,	\
300 		 unsigned int value2, unsigned int value3),	\
301 	TP_ARGS(ull, value1, value2, value3))
302 
303 /* Trace events for fs/ocfs2/alloc.c. */
304 DECLARE_EVENT_CLASS(ocfs2__btree_ops,
305 	TP_PROTO(unsigned long long owner,\
306 		 unsigned int value1, unsigned int value2),
307 	TP_ARGS(owner, value1, value2),
308 	TP_STRUCT__entry(
309 		__field(unsigned long long, owner)
310 		__field(unsigned int, value1)
311 		__field(unsigned int, value2)
312 	),
313 	TP_fast_assign(
314 		__entry->owner = owner;
315 		__entry->value1 = value1;
316 		__entry->value2	= value2;
317 	),
318 	TP_printk("%llu %u %u",
319 		  __entry->owner, __entry->value1, __entry->value2)
320 );
321 
322 #define DEFINE_OCFS2_BTREE_EVENT(name)	\
323 DEFINE_EVENT(ocfs2__btree_ops, name,	\
324 	TP_PROTO(unsigned long long owner,	\
325 		 unsigned int value1, unsigned int value2),	\
326 	TP_ARGS(owner, value1, value2))
327 
328 DEFINE_OCFS2_BTREE_EVENT(ocfs2_adjust_rightmost_branch);
329 
330 DEFINE_OCFS2_BTREE_EVENT(ocfs2_rotate_tree_right);
331 
332 DEFINE_OCFS2_BTREE_EVENT(ocfs2_append_rec_to_path);
333 
334 DEFINE_OCFS2_BTREE_EVENT(ocfs2_insert_extent_start);
335 
336 DEFINE_OCFS2_BTREE_EVENT(ocfs2_add_clusters_in_btree);
337 
338 DEFINE_OCFS2_INT_EVENT(ocfs2_num_free_extents);
339 
340 DEFINE_OCFS2_INT_EVENT(ocfs2_complete_edge_insert);
341 
342 TRACE_EVENT(ocfs2_grow_tree,
343 	TP_PROTO(unsigned long long owner, int depth),
344 	TP_ARGS(owner, depth),
345 	TP_STRUCT__entry(
346 		__field(unsigned long long, owner)
347 		__field(int, depth)
348 	),
349 	TP_fast_assign(
350 		__entry->owner = owner;
351 		__entry->depth = depth;
352 	),
353 	TP_printk("%llu %d", __entry->owner, __entry->depth)
354 );
355 
356 TRACE_EVENT(ocfs2_rotate_subtree,
357 	TP_PROTO(int subtree_root, unsigned long long blkno,
358 		 int depth),
359 	TP_ARGS(subtree_root, blkno, depth),
360 	TP_STRUCT__entry(
361 		__field(int, subtree_root)
362 		__field(unsigned long long, blkno)
363 		__field(int, depth)
364 	),
365 	TP_fast_assign(
366 		__entry->subtree_root = subtree_root;
367 		__entry->blkno = blkno;
368 		__entry->depth = depth;
369 	),
370 	TP_printk("%d %llu %d", __entry->subtree_root,
371 		  __entry->blkno, __entry->depth)
372 );
373 
374 TRACE_EVENT(ocfs2_insert_extent,
375 	TP_PROTO(unsigned int ins_appending, unsigned int ins_contig,
376 		 int ins_contig_index, int free_records, int ins_tree_depth),
377 	TP_ARGS(ins_appending, ins_contig, ins_contig_index, free_records,
378 		ins_tree_depth),
379 	TP_STRUCT__entry(
380 		__field(unsigned int, ins_appending)
381 		__field(unsigned int, ins_contig)
382 		__field(int, ins_contig_index)
383 		__field(int, free_records)
384 		__field(int, ins_tree_depth)
385 	),
386 	TP_fast_assign(
387 		__entry->ins_appending = ins_appending;
388 		__entry->ins_contig = ins_contig;
389 		__entry->ins_contig_index = ins_contig_index;
390 		__entry->free_records = free_records;
391 		__entry->ins_tree_depth = ins_tree_depth;
392 	),
393 	TP_printk("%u %u %d %d %d",
394 		  __entry->ins_appending, __entry->ins_contig,
395 		  __entry->ins_contig_index, __entry->free_records,
396 		  __entry->ins_tree_depth)
397 );
398 
399 TRACE_EVENT(ocfs2_split_extent,
400 	TP_PROTO(int split_index, unsigned int c_contig_type,
401 		 unsigned int c_has_empty_extent,
402 		 unsigned int c_split_covers_rec),
403 	TP_ARGS(split_index, c_contig_type,
404 		c_has_empty_extent, c_split_covers_rec),
405 	TP_STRUCT__entry(
406 		__field(int, split_index)
407 		__field(unsigned int, c_contig_type)
408 		__field(unsigned int, c_has_empty_extent)
409 		__field(unsigned int, c_split_covers_rec)
410 	),
411 	TP_fast_assign(
412 		__entry->split_index = split_index;
413 		__entry->c_contig_type = c_contig_type;
414 		__entry->c_has_empty_extent = c_has_empty_extent;
415 		__entry->c_split_covers_rec = c_split_covers_rec;
416 	),
417 	TP_printk("%d %u %u %u", __entry->split_index, __entry->c_contig_type,
418 		  __entry->c_has_empty_extent, __entry->c_split_covers_rec)
419 );
420 
421 TRACE_EVENT(ocfs2_remove_extent,
422 	TP_PROTO(unsigned long long owner, unsigned int cpos,
423 		 unsigned int len, int index,
424 		 unsigned int e_cpos, unsigned int clusters),
425 	TP_ARGS(owner, cpos, len, index, e_cpos, clusters),
426 	TP_STRUCT__entry(
427 		__field(unsigned long long, owner)
428 		__field(unsigned int, cpos)
429 		__field(unsigned int, len)
430 		__field(int, index)
431 		__field(unsigned int, e_cpos)
432 		__field(unsigned int, clusters)
433 	),
434 	TP_fast_assign(
435 		__entry->owner = owner;
436 		__entry->cpos = cpos;
437 		__entry->len = len;
438 		__entry->index = index;
439 		__entry->e_cpos = e_cpos;
440 		__entry->clusters = clusters;
441 	),
442 	TP_printk("%llu %u %u %d %u %u",
443 		  __entry->owner, __entry->cpos, __entry->len, __entry->index,
444 		  __entry->e_cpos, __entry->clusters)
445 );
446 
447 TRACE_EVENT(ocfs2_commit_truncate,
448 	TP_PROTO(unsigned long long ino, unsigned int new_cpos,
449 		 unsigned int clusters, unsigned int depth),
450 	TP_ARGS(ino, new_cpos, clusters, depth),
451 	TP_STRUCT__entry(
452 		__field(unsigned long long, ino)
453 		__field(unsigned int, new_cpos)
454 		__field(unsigned int, clusters)
455 		__field(unsigned int, depth)
456 	),
457 	TP_fast_assign(
458 		__entry->ino = ino;
459 		__entry->new_cpos = new_cpos;
460 		__entry->clusters = clusters;
461 		__entry->depth = depth;
462 	),
463 	TP_printk("%llu %u %u %u",
464 		  __entry->ino, __entry->new_cpos,
465 		  __entry->clusters, __entry->depth)
466 );
467 
468 TRACE_EVENT(ocfs2_validate_extent_block,
469 	TP_PROTO(unsigned long long blkno),
470 	TP_ARGS(blkno),
471 	TP_STRUCT__entry(
472 		__field(unsigned long long, blkno)
473 	),
474 	TP_fast_assign(
475 		__entry->blkno = blkno;
476 	),
477 	TP_printk("%llu ", __entry->blkno)
478 );
479 
480 TRACE_EVENT(ocfs2_rotate_leaf,
481 	TP_PROTO(unsigned int insert_cpos, int insert_index,
482 		 int has_empty, int next_free,
483 		 unsigned int l_count),
484 	TP_ARGS(insert_cpos, insert_index, has_empty,
485 		next_free, l_count),
486 	TP_STRUCT__entry(
487 		__field(unsigned int, insert_cpos)
488 		__field(int, insert_index)
489 		__field(int, has_empty)
490 		__field(int, next_free)
491 		__field(unsigned int, l_count)
492 	),
493 	TP_fast_assign(
494 		__entry->insert_cpos = insert_cpos;
495 		__entry->insert_index = insert_index;
496 		__entry->has_empty = has_empty;
497 		__entry->next_free = next_free;
498 		__entry->l_count = l_count;
499 	),
500 	TP_printk("%u %d %d %d %u", __entry->insert_cpos,
501 		  __entry->insert_index, __entry->has_empty,
502 		  __entry->next_free, __entry->l_count)
503 );
504 
505 TRACE_EVENT(ocfs2_add_clusters_in_btree_ret,
506 	TP_PROTO(int status, int reason, int err),
507 	TP_ARGS(status, reason, err),
508 	TP_STRUCT__entry(
509 		__field(int, status)
510 		__field(int, reason)
511 		__field(int, err)
512 	),
513 	TP_fast_assign(
514 		__entry->status = status;
515 		__entry->reason = reason;
516 		__entry->err = err;
517 	),
518 	TP_printk("%d %d %d", __entry->status,
519 		  __entry->reason, __entry->err)
520 );
521 
522 TRACE_EVENT(ocfs2_mark_extent_written,
523 	TP_PROTO(unsigned long long owner, unsigned int cpos,
524 		 unsigned int len, unsigned int phys),
525 	TP_ARGS(owner, cpos, len, phys),
526 	TP_STRUCT__entry(
527 		__field(unsigned long long, owner)
528 		__field(unsigned int, cpos)
529 		__field(unsigned int, len)
530 		__field(unsigned int, phys)
531 	),
532 	TP_fast_assign(
533 		__entry->owner = owner;
534 		__entry->cpos = cpos;
535 		__entry->len = len;
536 		__entry->phys = phys;
537 	),
538 	TP_printk("%llu %u %u %u",
539 		  __entry->owner, __entry->cpos,
540 		  __entry->len, __entry->phys)
541 );
542 
543 DECLARE_EVENT_CLASS(ocfs2__truncate_log_ops,
544 	TP_PROTO(unsigned long long blkno, int index,
545 		 unsigned int start, unsigned int num),
546 	TP_ARGS(blkno, index, start, num),
547 	TP_STRUCT__entry(
548 		__field(unsigned long long, blkno)
549 		__field(int, index)
550 		__field(unsigned int, start)
551 		__field(unsigned int, num)
552 	),
553 	TP_fast_assign(
554 		__entry->blkno = blkno;
555 		__entry->index = index;
556 		__entry->start = start;
557 		__entry->num = num;
558 	),
559 	TP_printk("%llu %d %u %u",
560 		  __entry->blkno, __entry->index,
561 		  __entry->start, __entry->num)
562 );
563 
564 #define DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(name)	\
565 DEFINE_EVENT(ocfs2__truncate_log_ops, name,	\
566 	TP_PROTO(unsigned long long blkno, int index,	\
567 		 unsigned int start, unsigned int num),	\
568 	TP_ARGS(blkno, index, start, num))
569 
570 DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_truncate_log_append);
571 
572 DEFINE_OCFS2_TRUNCATE_LOG_OPS_EVENT(ocfs2_replay_truncate_records);
573 
574 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_flush_truncate_log);
575 
576 DEFINE_OCFS2_INT_EVENT(ocfs2_begin_truncate_log_recovery);
577 
578 DEFINE_OCFS2_INT_EVENT(ocfs2_truncate_log_recovery_num);
579 
580 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_complete_truncate_log_recovery);
581 
582 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_free_cached_blocks);
583 
584 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_cache_cluster_dealloc);
585 
586 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_run_deallocs);
587 
588 TRACE_EVENT(ocfs2_cache_block_dealloc,
589 	TP_PROTO(int type, int slot, unsigned long long suballoc,
590 		 unsigned long long blkno, unsigned int bit),
591 	TP_ARGS(type, slot, suballoc, blkno, bit),
592 	TP_STRUCT__entry(
593 		__field(int, type)
594 		__field(int, slot)
595 		__field(unsigned long long, suballoc)
596 		__field(unsigned long long, blkno)
597 		__field(unsigned int, bit)
598 	),
599 	TP_fast_assign(
600 		__entry->type = type;
601 		__entry->slot = slot;
602 		__entry->suballoc = suballoc;
603 		__entry->blkno = blkno;
604 		__entry->bit = bit;
605 	),
606 	TP_printk("%d %d %llu %llu %u",
607 		  __entry->type, __entry->slot, __entry->suballoc,
608 		  __entry->blkno, __entry->bit)
609 );
610 
611 /* End of trace events for fs/ocfs2/alloc.c. */
612 
613 /* Trace events for fs/ocfs2/localalloc.c. */
614 
615 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_la_set_sizes);
616 
617 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_alloc_should_use_local);
618 
619 DEFINE_OCFS2_INT_EVENT(ocfs2_load_local_alloc);
620 
621 DEFINE_OCFS2_INT_EVENT(ocfs2_begin_local_alloc_recovery);
622 
623 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_reserve_local_alloc_bits);
624 
625 DEFINE_OCFS2_UINT_EVENT(ocfs2_local_alloc_count_bits);
626 
627 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits_search_bitmap);
628 
629 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_local_alloc_find_clear_bits);
630 
631 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_sync_local_to_main);
632 
633 TRACE_EVENT(ocfs2_sync_local_to_main_free,
634 	TP_PROTO(int count, int bit, unsigned long long start_blk,
635 		 unsigned long long blkno),
636 	TP_ARGS(count, bit, start_blk, blkno),
637 	TP_STRUCT__entry(
638 		__field(int, count)
639 		__field(int, bit)
640 		__field(unsigned long long, start_blk)
641 		__field(unsigned long long, blkno)
642 	),
643 	TP_fast_assign(
644 		__entry->count = count;
645 		__entry->bit = bit;
646 		__entry->start_blk = start_blk;
647 		__entry->blkno = blkno;
648 	),
649 	TP_printk("%d %d %llu %llu",
650 		  __entry->count, __entry->bit, __entry->start_blk,
651 		  __entry->blkno)
652 );
653 
654 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_local_alloc_new_window);
655 
656 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_local_alloc_new_window_result);
657 
658 /* End of trace events for fs/ocfs2/localalloc.c. */
659 
660 /* Trace events for fs/ocfs2/resize.c. */
661 
662 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_update_last_group_and_inode);
663 
664 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_group_extend);
665 
666 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_group_add);
667 
668 /* End of trace events for fs/ocfs2/resize.c. */
669 
670 /* Trace events for fs/ocfs2/suballoc.c. */
671 
672 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_group_descriptor);
673 
674 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_contig);
675 
676 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_block_group_alloc_discontig);
677 
678 DEFINE_OCFS2_ULL_EVENT(ocfs2_block_group_alloc);
679 
680 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_nospc);
681 
682 DEFINE_OCFS2_UINT_UINT_UINT_EVENT(ocfs2_reserve_suballoc_bits_no_new_group);
683 
684 DEFINE_OCFS2_ULL_EVENT(ocfs2_reserve_new_inode_new_group);
685 
686 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_set_bits);
687 
688 TRACE_EVENT(ocfs2_relink_block_group,
689 	TP_PROTO(unsigned long long i_blkno, unsigned int chain,
690 		 unsigned long long bg_blkno,
691 		 unsigned long long prev_blkno),
692 	TP_ARGS(i_blkno, chain, bg_blkno, prev_blkno),
693 	TP_STRUCT__entry(
694 		__field(unsigned long long, i_blkno)
695 		__field(unsigned int, chain)
696 		__field(unsigned long long, bg_blkno)
697 		__field(unsigned long long, prev_blkno)
698 	),
699 	TP_fast_assign(
700 		__entry->i_blkno = i_blkno;
701 		__entry->chain = chain;
702 		__entry->bg_blkno = bg_blkno;
703 		__entry->prev_blkno = prev_blkno;
704 	),
705 	TP_printk("%llu %u %llu %llu",
706 		  __entry->i_blkno, __entry->chain, __entry->bg_blkno,
707 		  __entry->prev_blkno)
708 );
709 
710 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_cluster_group_search_wrong_max_bits);
711 
712 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_cluster_group_search_max_block);
713 
714 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_block_group_search_max_block);
715 
716 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_search_chain_begin);
717 
718 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_succ);
719 
720 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_search_chain_end);
721 
722 DEFINE_OCFS2_UINT_EVENT(ocfs2_claim_suballoc_bits);
723 
724 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_claim_new_inode_at_loc);
725 
726 DEFINE_OCFS2_UINT_UINT_EVENT(ocfs2_block_group_clear_bits);
727 
728 TRACE_EVENT(ocfs2_free_suballoc_bits,
729 	TP_PROTO(unsigned long long inode, unsigned long long group,
730 		 unsigned int start_bit, unsigned int count),
731 	TP_ARGS(inode, group, start_bit, count),
732 	TP_STRUCT__entry(
733 		__field(unsigned long long, inode)
734 		__field(unsigned long long, group)
735 		__field(unsigned int, start_bit)
736 		__field(unsigned int, count)
737 	),
738 	TP_fast_assign(
739 		__entry->inode = inode;
740 		__entry->group = group;
741 		__entry->start_bit = start_bit;
742 		__entry->count = count;
743 	),
744 	TP_printk("%llu %llu %u %u", __entry->inode, __entry->group,
745 		  __entry->start_bit, __entry->count)
746 );
747 
748 TRACE_EVENT(ocfs2_free_clusters,
749 	TP_PROTO(unsigned long long bg_blkno, unsigned long long start_blk,
750 		 unsigned int start_bit, unsigned int count),
751 	TP_ARGS(bg_blkno, start_blk, start_bit, count),
752 	TP_STRUCT__entry(
753 		__field(unsigned long long, bg_blkno)
754 		__field(unsigned long long, start_blk)
755 		__field(unsigned int, start_bit)
756 		__field(unsigned int, count)
757 	),
758 	TP_fast_assign(
759 		__entry->bg_blkno = bg_blkno;
760 		__entry->start_blk = start_blk;
761 		__entry->start_bit = start_bit;
762 		__entry->count = count;
763 	),
764 	TP_printk("%llu %llu %u %u", __entry->bg_blkno, __entry->start_blk,
765 		  __entry->start_bit, __entry->count)
766 );
767 
768 DEFINE_OCFS2_ULL_EVENT(ocfs2_get_suballoc_slot_bit);
769 
770 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_test_suballoc_bit);
771 
772 DEFINE_OCFS2_ULL_EVENT(ocfs2_test_inode_bit);
773 
774 /* End of trace events for fs/ocfs2/suballoc.c. */
775 
776 /* Trace events for fs/ocfs2/refcounttree.c. */
777 
778 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_refcount_block);
779 
780 DEFINE_OCFS2_ULL_EVENT(ocfs2_purge_refcount_trees);
781 
782 DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree);
783 
784 DEFINE_OCFS2_ULL_EVENT(ocfs2_create_refcount_tree_blkno);
785 
786 DEFINE_OCFS2_ULL_INT_INT_INT_EVENT(ocfs2_change_refcount_rec);
787 
788 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_expand_inline_ref_root);
789 
790 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_divide_leaf_refcount_block);
791 
792 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_new_leaf_refcount_block);
793 
794 DECLARE_EVENT_CLASS(ocfs2__refcount_tree_ops,
795 	TP_PROTO(unsigned long long blkno, int index,
796 		 unsigned long long cpos,
797 		 unsigned int clusters, unsigned int refcount),
798 	TP_ARGS(blkno, index, cpos, clusters, refcount),
799 	TP_STRUCT__entry(
800 		__field(unsigned long long, blkno)
801 		__field(int, index)
802 		__field(unsigned long long, cpos)
803 		__field(unsigned int, clusters)
804 		__field(unsigned int, refcount)
805 	),
806 	TP_fast_assign(
807 		__entry->blkno = blkno;
808 		__entry->index = index;
809 		__entry->cpos = cpos;
810 		__entry->clusters = clusters;
811 		__entry->refcount = refcount;
812 	),
813 	TP_printk("%llu %d %llu %u %u", __entry->blkno, __entry->index,
814 		  __entry->cpos, __entry->clusters, __entry->refcount)
815 );
816 
817 #define DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(name)	\
818 DEFINE_EVENT(ocfs2__refcount_tree_ops, name,		\
819 	TP_PROTO(unsigned long long blkno, int index,	\
820 		 unsigned long long cpos,		\
821 		 unsigned int count, unsigned int refcount),	\
822 	TP_ARGS(blkno, index, cpos, count, refcount))
823 
824 DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_insert_refcount_rec);
825 
826 TRACE_EVENT(ocfs2_split_refcount_rec,
827 	TP_PROTO(unsigned long long cpos,
828 		 unsigned int clusters, unsigned int refcount,
829 		 unsigned long long split_cpos,
830 		 unsigned int split_clusters, unsigned int split_refcount),
831 	TP_ARGS(cpos, clusters, refcount,
832 		split_cpos, split_clusters, split_refcount),
833 	TP_STRUCT__entry(
834 		__field(unsigned long long, cpos)
835 		__field(unsigned int, clusters)
836 		__field(unsigned int, refcount)
837 		__field(unsigned long long, split_cpos)
838 		__field(unsigned int, split_clusters)
839 		__field(unsigned int, split_refcount)
840 	),
841 	TP_fast_assign(
842 		__entry->cpos = cpos;
843 		__entry->clusters = clusters;
844 		__entry->refcount = refcount;
845 		__entry->split_cpos = split_cpos;
846 		__entry->split_clusters = split_clusters;
847 		__entry->split_refcount	= split_refcount;
848 	),
849 	TP_printk("%llu %u %u %llu %u %u",
850 		  __entry->cpos, __entry->clusters, __entry->refcount,
851 		  __entry->split_cpos, __entry->split_clusters,
852 		  __entry->split_refcount)
853 );
854 
855 DEFINE_OCFS2_REFCOUNT_TREE_OPS_EVENT(ocfs2_split_refcount_rec_insert);
856 
857 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_increase_refcount_begin);
858 
859 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_change);
860 
861 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_increase_refcount_insert);
862 
863 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_increase_refcount_split);
864 
865 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_remove_refcount_extent);
866 
867 DEFINE_OCFS2_ULL_EVENT(ocfs2_restore_refcount_block);
868 
869 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_decrease_refcount_rec);
870 
871 TRACE_EVENT(ocfs2_decrease_refcount,
872 	TP_PROTO(unsigned long long owner,
873 		 unsigned long long cpos,
874 		 unsigned int len, int delete),
875 	TP_ARGS(owner, cpos, len, delete),
876 	TP_STRUCT__entry(
877 		__field(unsigned long long, owner)
878 		__field(unsigned long long, cpos)
879 		__field(unsigned int, len)
880 		__field(int, delete)
881 	),
882 	TP_fast_assign(
883 		__entry->owner = owner;
884 		__entry->cpos = cpos;
885 		__entry->len = len;
886 		__entry->delete = delete;
887 	),
888 	TP_printk("%llu %llu %u %d",
889 		  __entry->owner, __entry->cpos, __entry->len, __entry->delete)
890 );
891 
892 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_mark_extent_refcounted);
893 
894 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_calc_refcount_meta_credits);
895 
896 TRACE_EVENT(ocfs2_calc_refcount_meta_credits_iterate,
897 	TP_PROTO(int recs_add, unsigned long long cpos,
898 		 unsigned int clusters, unsigned long long r_cpos,
899 		 unsigned int r_clusters, unsigned int refcount, int index),
900 	TP_ARGS(recs_add, cpos, clusters, r_cpos, r_clusters, refcount, index),
901 	TP_STRUCT__entry(
902 		__field(int, recs_add)
903 		__field(unsigned long long, cpos)
904 		__field(unsigned int, clusters)
905 		__field(unsigned long long, r_cpos)
906 		__field(unsigned int, r_clusters)
907 		__field(unsigned int, refcount)
908 		__field(int, index)
909 	),
910 	TP_fast_assign(
911 		__entry->recs_add = recs_add;
912 		__entry->cpos = cpos;
913 		__entry->clusters = clusters;
914 		__entry->r_cpos = r_cpos;
915 		__entry->r_clusters = r_clusters;
916 		__entry->refcount = refcount;
917 		__entry->index = index;
918 	),
919 	TP_printk("%d %llu %u %llu %u %u %d",
920 		  __entry->recs_add, __entry->cpos, __entry->clusters,
921 		  __entry->r_cpos, __entry->r_clusters,
922 		  __entry->refcount, __entry->index)
923 );
924 
925 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_add_refcount_flag);
926 
927 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_prepare_refcount_change_for_del);
928 
929 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_lock_refcount_allocators);
930 
931 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_page);
932 
933 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_duplicate_clusters_by_jbd);
934 
935 TRACE_EVENT(ocfs2_clear_ext_refcount,
936 	TP_PROTO(unsigned long long ino, unsigned int cpos,
937 		 unsigned int len, unsigned int p_cluster,
938 		 unsigned int ext_flags),
939 	TP_ARGS(ino, cpos, len, p_cluster, ext_flags),
940 	TP_STRUCT__entry(
941 		__field(unsigned long long, ino)
942 		__field(unsigned int, cpos)
943 		__field(unsigned int, len)
944 		__field(unsigned int, p_cluster)
945 		__field(unsigned int, ext_flags)
946 	),
947 	TP_fast_assign(
948 		__entry->ino = ino;
949 		__entry->cpos = cpos;
950 		__entry->len = len;
951 		__entry->p_cluster = p_cluster;
952 		__entry->ext_flags = ext_flags;
953 	),
954 	TP_printk("%llu %u %u %u %u",
955 		  __entry->ino, __entry->cpos, __entry->len,
956 		  __entry->p_cluster, __entry->ext_flags)
957 );
958 
959 TRACE_EVENT(ocfs2_replace_clusters,
960 	TP_PROTO(unsigned long long ino, unsigned int cpos,
961 		 unsigned int old, unsigned int new, unsigned int len,
962 		 unsigned int ext_flags),
963 	TP_ARGS(ino, cpos, old, new, len, ext_flags),
964 	TP_STRUCT__entry(
965 		__field(unsigned long long, ino)
966 		__field(unsigned int, cpos)
967 		__field(unsigned int, old)
968 		__field(unsigned int, new)
969 		__field(unsigned int, len)
970 		__field(unsigned int, ext_flags)
971 	),
972 	TP_fast_assign(
973 		__entry->ino = ino;
974 		__entry->cpos = cpos;
975 		__entry->old = old;
976 		__entry->new = new;
977 		__entry->len = len;
978 		__entry->ext_flags = ext_flags;
979 	),
980 	TP_printk("%llu %u %u %u %u %u",
981 		  __entry->ino, __entry->cpos, __entry->old, __entry->new,
982 		  __entry->len, __entry->ext_flags)
983 );
984 
985 DEFINE_OCFS2_ULL_UINT_UINT_UINT_EVENT(ocfs2_make_clusters_writable);
986 
987 TRACE_EVENT(ocfs2_refcount_cow_hunk,
988 	TP_PROTO(unsigned long long ino, unsigned int cpos,
989 		 unsigned int write_len, unsigned int max_cpos,
990 		 unsigned int cow_start, unsigned int cow_len),
991 	TP_ARGS(ino, cpos, write_len, max_cpos, cow_start, cow_len),
992 	TP_STRUCT__entry(
993 		__field(unsigned long long, ino)
994 		__field(unsigned int, cpos)
995 		__field(unsigned int, write_len)
996 		__field(unsigned int, max_cpos)
997 		__field(unsigned int, cow_start)
998 		__field(unsigned int, cow_len)
999 	),
1000 	TP_fast_assign(
1001 		__entry->ino = ino;
1002 		__entry->cpos = cpos;
1003 		__entry->write_len = write_len;
1004 		__entry->max_cpos = max_cpos;
1005 		__entry->cow_start = cow_start;
1006 		__entry->cow_len = cow_len;
1007 	),
1008 	TP_printk("%llu %u %u %u %u %u",
1009 		  __entry->ino, __entry->cpos, __entry->write_len,
1010 		  __entry->max_cpos, __entry->cow_start, __entry->cow_len)
1011 );
1012 
1013 /* End of trace events for fs/ocfs2/refcounttree.c. */
1014 
1015 /* Trace events for fs/ocfs2/aops.c. */
1016 
1017 DECLARE_EVENT_CLASS(ocfs2__get_block,
1018 	TP_PROTO(unsigned long long ino, unsigned long long iblock,
1019 		 void *bh_result, int create),
1020 	TP_ARGS(ino, iblock, bh_result, create),
1021 	TP_STRUCT__entry(
1022 		__field(unsigned long long, ino)
1023 		__field(unsigned long long, iblock)
1024 		__field(void *, bh_result)
1025 		__field(int, create)
1026 	),
1027 	TP_fast_assign(
1028 		__entry->ino = ino;
1029 		__entry->iblock = iblock;
1030 		__entry->bh_result = bh_result;
1031 		__entry->create = create;
1032 	),
1033 	TP_printk("%llu %llu %p %d",
1034 		  __entry->ino, __entry->iblock,
1035 		  __entry->bh_result, __entry->create)
1036 );
1037 
1038 #define DEFINE_OCFS2_GET_BLOCK_EVENT(name)	\
1039 DEFINE_EVENT(ocfs2__get_block, name,	\
1040 	TP_PROTO(unsigned long long ino, unsigned long long iblock,	\
1041 		 void *bh_result, int create),	\
1042 	TP_ARGS(ino, iblock, bh_result, create))
1043 
1044 DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_symlink_get_block);
1045 
1046 DEFINE_OCFS2_GET_BLOCK_EVENT(ocfs2_get_block);
1047 
1048 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_get_block_end);
1049 
1050 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_readpage);
1051 
1052 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_writepage);
1053 
1054 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_bmap);
1055 
1056 TRACE_EVENT(ocfs2_try_to_write_inline_data,
1057 	TP_PROTO(unsigned long long ino, unsigned int len,
1058 		 unsigned long long pos, unsigned int flags),
1059 	TP_ARGS(ino, len, pos, flags),
1060 	TP_STRUCT__entry(
1061 		__field(unsigned long long, ino)
1062 		__field(unsigned int, len)
1063 		__field(unsigned long long, pos)
1064 		__field(unsigned int, flags)
1065 	),
1066 	TP_fast_assign(
1067 		__entry->ino = ino;
1068 		__entry->len = len;
1069 		__entry->pos = pos;
1070 		__entry->flags = flags;
1071 	),
1072 	TP_printk("%llu %u %llu 0x%x",
1073 		  __entry->ino, __entry->len, __entry->pos, __entry->flags)
1074 );
1075 
1076 TRACE_EVENT(ocfs2_write_begin_nolock,
1077 	TP_PROTO(unsigned long long ino,
1078 		 long long i_size, unsigned int i_clusters,
1079 		 unsigned long long pos, unsigned int len,
1080 		 unsigned int flags, void *page,
1081 		 unsigned int clusters, unsigned int extents_to_split),
1082 	TP_ARGS(ino, i_size, i_clusters, pos, len, flags,
1083 		page, clusters, extents_to_split),
1084 	TP_STRUCT__entry(
1085 		__field(unsigned long long, ino)
1086 		__field(long long, i_size)
1087 		__field(unsigned int, i_clusters)
1088 		__field(unsigned long long, pos)
1089 		__field(unsigned int, len)
1090 		__field(unsigned int, flags)
1091 		__field(void *, page)
1092 		__field(unsigned int, clusters)
1093 		__field(unsigned int, extents_to_split)
1094 	),
1095 	TP_fast_assign(
1096 		__entry->ino = ino;
1097 		__entry->i_size = i_size;
1098 		__entry->i_clusters = i_clusters;
1099 		__entry->pos = pos;
1100 		__entry->len = len;
1101 		__entry->flags = flags;
1102 		__entry->page = page;
1103 		__entry->clusters = clusters;
1104 		__entry->extents_to_split = extents_to_split;
1105 	),
1106 	TP_printk("%llu %lld %u %llu %u %u %p %u %u",
1107 		  __entry->ino, __entry->i_size, __entry->i_clusters,
1108 		  __entry->pos, __entry->len,
1109 		  __entry->flags, __entry->page, __entry->clusters,
1110 		  __entry->extents_to_split)
1111 );
1112 
1113 TRACE_EVENT(ocfs2_write_end_inline,
1114 	TP_PROTO(unsigned long long ino,
1115 		 unsigned long long pos, unsigned int copied,
1116 		 unsigned int id_count, unsigned int features),
1117 	TP_ARGS(ino, pos, copied, id_count, features),
1118 	TP_STRUCT__entry(
1119 		__field(unsigned long long, ino)
1120 		__field(unsigned long long, pos)
1121 		__field(unsigned int, copied)
1122 		__field(unsigned int, id_count)
1123 		__field(unsigned int, features)
1124 	),
1125 	TP_fast_assign(
1126 		__entry->ino = ino;
1127 		__entry->pos = pos;
1128 		__entry->copied = copied;
1129 		__entry->id_count = id_count;
1130 		__entry->features = features;
1131 	),
1132 	TP_printk("%llu %llu %u %u %u",
1133 		  __entry->ino, __entry->pos, __entry->copied,
1134 		  __entry->id_count, __entry->features)
1135 );
1136 
1137 /* End of trace events for fs/ocfs2/aops.c. */
1138 
1139 /* Trace events for fs/ocfs2/mmap.c. */
1140 
1141 TRACE_EVENT(ocfs2_fault,
1142 	TP_PROTO(unsigned long long ino,
1143 		 void *area, void *page, unsigned long pgoff),
1144 	TP_ARGS(ino, area, page, pgoff),
1145 	TP_STRUCT__entry(
1146 		__field(unsigned long long, ino)
1147 		__field(void *, area)
1148 		__field(void *, page)
1149 		__field(unsigned long, pgoff)
1150 	),
1151 	TP_fast_assign(
1152 		__entry->ino = ino;
1153 		__entry->area = area;
1154 		__entry->page = page;
1155 		__entry->pgoff = pgoff;
1156 	),
1157 	TP_printk("%llu %p %p %lu",
1158 		  __entry->ino, __entry->area, __entry->page, __entry->pgoff)
1159 );
1160 
1161 /* End of trace events for fs/ocfs2/mmap.c. */
1162 
1163 /* Trace events for fs/ocfs2/file.c. */
1164 
1165 DECLARE_EVENT_CLASS(ocfs2__file_ops,
1166 	TP_PROTO(void *inode, void *file, void *dentry,
1167 		 unsigned long long ino,
1168 		 unsigned int d_len, const unsigned char *d_name,
1169 		 unsigned long long para),
1170 	TP_ARGS(inode, file, dentry, ino, d_len, d_name, para),
1171 	TP_STRUCT__entry(
1172 		__field(void *, inode)
1173 		__field(void *, file)
1174 		__field(void *, dentry)
1175 		__field(unsigned long long, ino)
1176 		__field(unsigned int, d_len)
1177 		__string(d_name, d_name)
1178 		__field(unsigned long long, para)
1179 	),
1180 	TP_fast_assign(
1181 		__entry->inode = inode;
1182 		__entry->file = file;
1183 		__entry->dentry = dentry;
1184 		__entry->ino = ino;
1185 		__entry->d_len = d_len;
1186 		__assign_str(d_name, d_name);
1187 		__entry->para = para;
1188 	),
1189 	TP_printk("%p %p %p %llu %llu %.*s", __entry->inode, __entry->file,
1190 		  __entry->dentry, __entry->ino, __entry->para,
1191 		  __entry->d_len, __get_str(d_name))
1192 );
1193 
1194 #define DEFINE_OCFS2_FILE_OPS(name)				\
1195 DEFINE_EVENT(ocfs2__file_ops, name,				\
1196 TP_PROTO(void *inode, void *file, void *dentry,			\
1197 	 unsigned long long ino,				\
1198 	 unsigned int d_len, const unsigned char *d_name,	\
1199 	 unsigned long long mode),				\
1200 	TP_ARGS(inode, file, dentry, ino, d_len, d_name, mode))
1201 
1202 DEFINE_OCFS2_FILE_OPS(ocfs2_file_open);
1203 
1204 DEFINE_OCFS2_FILE_OPS(ocfs2_file_release);
1205 
1206 DEFINE_OCFS2_FILE_OPS(ocfs2_sync_file);
1207 
1208 DEFINE_OCFS2_FILE_OPS(ocfs2_file_aio_write);
1209 
1210 DEFINE_OCFS2_FILE_OPS(ocfs2_file_splice_write);
1211 
1212 DEFINE_OCFS2_FILE_OPS(ocfs2_file_splice_read);
1213 
1214 DEFINE_OCFS2_FILE_OPS(ocfs2_file_aio_read);
1215 
1216 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_truncate_file);
1217 
1218 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_truncate_file_error);
1219 
1220 TRACE_EVENT(ocfs2_extend_allocation,
1221 	TP_PROTO(unsigned long long ip_blkno, unsigned long long size,
1222 		 unsigned int clusters, unsigned int clusters_to_add,
1223 		 int why, int restart_func),
1224 	TP_ARGS(ip_blkno, size, clusters, clusters_to_add, why, restart_func),
1225 	TP_STRUCT__entry(
1226 		__field(unsigned long long, ip_blkno)
1227 		__field(unsigned long long, size)
1228 		__field(unsigned int, clusters)
1229 		__field(unsigned int, clusters_to_add)
1230 		__field(int, why)
1231 		__field(int, restart_func)
1232 	),
1233 	TP_fast_assign(
1234 		__entry->ip_blkno = ip_blkno;
1235 		__entry->size = size;
1236 		__entry->clusters = clusters;
1237 		__entry->clusters_to_add = clusters_to_add;
1238 		__entry->why = why;
1239 		__entry->restart_func = restart_func;
1240 	),
1241 	TP_printk("%llu %llu %u %u %d %d",
1242 		  __entry->ip_blkno, __entry->size, __entry->clusters,
1243 		  __entry->clusters_to_add, __entry->why, __entry->restart_func)
1244 );
1245 
1246 TRACE_EVENT(ocfs2_extend_allocation_end,
1247 	TP_PROTO(unsigned long long ino,
1248 		 unsigned int di_clusters, unsigned long long di_size,
1249 		 unsigned int ip_clusters, unsigned long long i_size),
1250 	TP_ARGS(ino, di_clusters, di_size, ip_clusters, i_size),
1251 	TP_STRUCT__entry(
1252 		__field(unsigned long long, ino)
1253 		__field(unsigned int, di_clusters)
1254 		__field(unsigned long long, di_size)
1255 		__field(unsigned int, ip_clusters)
1256 		__field(unsigned long long, i_size)
1257 	),
1258 	TP_fast_assign(
1259 		__entry->ino = ino;
1260 		__entry->di_clusters = di_clusters;
1261 		__entry->di_size = di_size;
1262 		__entry->ip_clusters = ip_clusters;
1263 		__entry->i_size = i_size;
1264 	),
1265 	TP_printk("%llu %u %llu %u %llu", __entry->ino, __entry->di_clusters,
1266 		  __entry->di_size, __entry->ip_clusters, __entry->i_size)
1267 );
1268 
1269 TRACE_EVENT(ocfs2_write_zero_page,
1270 	TP_PROTO(unsigned long long ino,
1271 		 unsigned long long abs_from, unsigned long long abs_to,
1272 		 unsigned long index, unsigned int zero_from,
1273 		 unsigned int zero_to),
1274 	TP_ARGS(ino, abs_from, abs_to, index, zero_from, zero_to),
1275 	TP_STRUCT__entry(
1276 		__field(unsigned long long, ino)
1277 		__field(unsigned long long, abs_from)
1278 		__field(unsigned long long, abs_to)
1279 		__field(unsigned long, index)
1280 		__field(unsigned int, zero_from)
1281 		__field(unsigned int, zero_to)
1282 	),
1283 	TP_fast_assign(
1284 		__entry->ino = ino;
1285 		__entry->abs_from = abs_from;
1286 		__entry->abs_to = abs_to;
1287 		__entry->index = index;
1288 		__entry->zero_from = zero_from;
1289 		__entry->zero_to = zero_to;
1290 	),
1291 	TP_printk("%llu %llu %llu %lu %u %u", __entry->ino,
1292 		  __entry->abs_from, __entry->abs_to,
1293 		  __entry->index, __entry->zero_from, __entry->zero_to)
1294 );
1295 
1296 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend_range);
1297 
1298 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_extend);
1299 
1300 TRACE_EVENT(ocfs2_setattr,
1301 	TP_PROTO(void *inode, void *dentry,
1302 		 unsigned long long ino,
1303 		 unsigned int d_len, const unsigned char *d_name,
1304 		 unsigned int ia_valid, unsigned int ia_mode,
1305 		 unsigned int ia_uid, unsigned int ia_gid),
1306 	TP_ARGS(inode, dentry, ino, d_len, d_name,
1307 		ia_valid, ia_mode, ia_uid, ia_gid),
1308 	TP_STRUCT__entry(
1309 		__field(void *, inode)
1310 		__field(void *, dentry)
1311 		__field(unsigned long long, ino)
1312 		__field(unsigned int, d_len)
1313 		__string(d_name, d_name)
1314 		__field(unsigned int, ia_valid)
1315 		__field(unsigned int, ia_mode)
1316 		__field(unsigned int, ia_uid)
1317 		__field(unsigned int, ia_gid)
1318 	),
1319 	TP_fast_assign(
1320 		__entry->inode = inode;
1321 		__entry->dentry = dentry;
1322 		__entry->ino = ino;
1323 		__entry->d_len = d_len;
1324 		__assign_str(d_name, d_name);
1325 		__entry->ia_valid = ia_valid;
1326 		__entry->ia_mode = ia_mode;
1327 		__entry->ia_uid = ia_uid;
1328 		__entry->ia_gid = ia_gid;
1329 	),
1330 	TP_printk("%p %p %llu %.*s %u %u %u %u", __entry->inode,
1331 		  __entry->dentry, __entry->ino, __entry->d_len,
1332 		  __get_str(d_name), __entry->ia_valid, __entry->ia_mode,
1333 		  __entry->ia_uid, __entry->ia_gid)
1334 );
1335 
1336 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_write_remove_suid);
1337 
1338 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_zero_partial_clusters);
1339 
1340 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range1);
1341 
1342 DEFINE_OCFS2_ULL_ULL_EVENT(ocfs2_zero_partial_clusters_range2);
1343 
1344 DEFINE_OCFS2_ULL_ULL_ULL_EVENT(ocfs2_remove_inode_range);
1345 
1346 TRACE_EVENT(ocfs2_prepare_inode_for_write,
1347 	TP_PROTO(unsigned long long ino, unsigned long long saved_pos,
1348 		 int appending, unsigned long count,
1349 		 int *direct_io, int *has_refcount),
1350 	TP_ARGS(ino, saved_pos, appending, count, direct_io, has_refcount),
1351 	TP_STRUCT__entry(
1352 		__field(unsigned long long, ino)
1353 		__field(unsigned long long, saved_pos)
1354 		__field(int, appending)
1355 		__field(unsigned long, count)
1356 		__field(int, direct_io)
1357 		__field(int, has_refcount)
1358 	),
1359 	TP_fast_assign(
1360 		__entry->ino = ino;
1361 		__entry->saved_pos = saved_pos;
1362 		__entry->appending = appending;
1363 		__entry->count = count;
1364 		__entry->direct_io = direct_io ? *direct_io : -1;
1365 		__entry->has_refcount = has_refcount ? *has_refcount : -1;
1366 	),
1367 	TP_printk("%llu %llu %d %lu %d %d", __entry->ino,
1368 		  __entry->saved_pos, __entry->appending, __entry->count,
1369 		  __entry->direct_io, __entry->has_refcount)
1370 );
1371 
1372 DEFINE_OCFS2_INT_EVENT(generic_file_aio_read_ret);
1373 
1374 /* End of trace events for fs/ocfs2/file.c. */
1375 
1376 /* Trace events for fs/ocfs2/inode.c. */
1377 
1378 TRACE_EVENT(ocfs2_iget_begin,
1379 	TP_PROTO(unsigned long long ino, unsigned int flags, int sysfile_type),
1380 	TP_ARGS(ino, flags, sysfile_type),
1381 	TP_STRUCT__entry(
1382 		__field(unsigned long long, ino)
1383 		__field(unsigned int, flags)
1384 		__field(int, sysfile_type)
1385 	),
1386 	TP_fast_assign(
1387 		__entry->ino = ino;
1388 		__entry->flags = flags;
1389 		__entry->sysfile_type = sysfile_type;
1390 	),
1391 	TP_printk("%llu %u %d", __entry->ino,
1392 		  __entry->flags, __entry->sysfile_type)
1393 );
1394 
1395 DEFINE_OCFS2_ULL_EVENT(ocfs2_iget5_locked);
1396 
1397 TRACE_EVENT(ocfs2_iget_end,
1398 	TP_PROTO(void *inode, unsigned long long ino),
1399 	TP_ARGS(inode, ino),
1400 	TP_STRUCT__entry(
1401 		__field(void *, inode)
1402 		__field(unsigned long long, ino)
1403 	),
1404 	TP_fast_assign(
1405 		__entry->inode = inode;
1406 		__entry->ino = ino;
1407 	),
1408 	TP_printk("%p %llu", __entry->inode, __entry->ino)
1409 );
1410 
1411 TRACE_EVENT(ocfs2_find_actor,
1412 	TP_PROTO(void *inode, unsigned long long ino,
1413 		 void *args,  unsigned long long fi_blkno),
1414 	TP_ARGS(inode, ino, args, fi_blkno),
1415 	TP_STRUCT__entry(
1416 		__field(void *, inode)
1417 		__field(unsigned long long, ino)
1418 		__field(void *, args)
1419 		__field(unsigned long long, fi_blkno)
1420 	),
1421 	TP_fast_assign(
1422 		__entry->inode = inode;
1423 		__entry->ino = ino;
1424 		__entry->args = args;
1425 		__entry->fi_blkno = fi_blkno;
1426 	),
1427 	TP_printk("%p %llu %p %llu", __entry->inode, __entry->ino,
1428 		  __entry->args, __entry->fi_blkno)
1429 );
1430 
1431 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_populate_inode);
1432 
1433 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_read_locked_inode);
1434 
1435 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_check_orphan_recovery_state);
1436 
1437 DEFINE_OCFS2_ULL_EVENT(ocfs2_validate_inode_block);
1438 
1439 TRACE_EVENT(ocfs2_inode_is_valid_to_delete,
1440 	TP_PROTO(void *task, void *dc_task, unsigned long long ino,
1441 		 unsigned int flags),
1442 	TP_ARGS(task, dc_task, ino, flags),
1443 	TP_STRUCT__entry(
1444 		__field(void *, task)
1445 		__field(void *, dc_task)
1446 		__field(unsigned long long, ino)
1447 		__field(unsigned int, flags)
1448 	),
1449 	TP_fast_assign(
1450 		__entry->task = task;
1451 		__entry->dc_task = dc_task;
1452 		__entry->ino = ino;
1453 		__entry->flags = flags;
1454 	),
1455 	TP_printk("%p %p %llu %u", __entry->task, __entry->dc_task,
1456 		  __entry->ino, __entry->flags)
1457 );
1458 
1459 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_query_inode_wipe_begin);
1460 
1461 DEFINE_OCFS2_UINT_EVENT(ocfs2_query_inode_wipe_succ);
1462 
1463 DEFINE_OCFS2_INT_INT_EVENT(ocfs2_query_inode_wipe_end);
1464 
1465 DEFINE_OCFS2_ULL_INT_EVENT(ocfs2_cleanup_delete_inode);
1466 
1467 DEFINE_OCFS2_ULL_ULL_UINT_EVENT(ocfs2_delete_inode);
1468 
1469 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_clear_inode);
1470 
1471 DEFINE_OCFS2_ULL_UINT_UINT_EVENT(ocfs2_drop_inode);
1472 
1473 TRACE_EVENT(ocfs2_inode_revalidate,
1474 	TP_PROTO(void *inode, unsigned long long ino,
1475 		 unsigned int flags),
1476 	TP_ARGS(inode, ino, flags),
1477 	TP_STRUCT__entry(
1478 		__field(void *, inode)
1479 		__field(unsigned long long, ino)
1480 		__field(unsigned int, flags)
1481 	),
1482 	TP_fast_assign(
1483 		__entry->inode = inode;
1484 		__entry->ino = ino;
1485 		__entry->flags = flags;
1486 	),
1487 	TP_printk("%p %llu %u", __entry->inode, __entry->ino, __entry->flags)
1488 );
1489 
1490 DEFINE_OCFS2_ULL_EVENT(ocfs2_mark_inode_dirty);
1491 
1492 /* End of trace events for fs/ocfs2/inode.c. */
1493 
1494 /* Trace events for fs/ocfs2/extent_map.c. */
1495 
1496 TRACE_EVENT(ocfs2_read_virt_blocks,
1497 	TP_PROTO(void *inode, unsigned long long vblock, int nr,
1498 		 void *bhs, unsigned int flags, void *validate),
1499 	TP_ARGS(inode, vblock, nr, bhs, flags, validate),
1500 	TP_STRUCT__entry(
1501 		__field(void *, inode)
1502 		__field(unsigned long long, vblock)
1503 		__field(int, nr)
1504 		__field(void *, bhs)
1505 		__field(unsigned int, flags)
1506 		__field(void *, validate)
1507 	),
1508 	TP_fast_assign(
1509 		__entry->inode = inode;
1510 		__entry->vblock = vblock;
1511 		__entry->nr = nr;
1512 		__entry->bhs = bhs;
1513 		__entry->flags = flags;
1514 		__entry->validate = validate;
1515 	),
1516 	TP_printk("%p %llu %d %p %x %p", __entry->inode, __entry->vblock,
1517 		  __entry->nr, __entry->bhs, __entry->flags, __entry->validate)
1518 );
1519 
1520 /* End of trace events for fs/ocfs2/extent_map.c. */
1521 
1522 /* Trace events for fs/ocfs2/slot_map.c. */
1523 
1524 DEFINE_OCFS2_UINT_EVENT(ocfs2_refresh_slot_info);
1525 
1526 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_map_slot_buffers);
1527 
1528 DEFINE_OCFS2_ULL_UINT_EVENT(ocfs2_map_slot_buffers_block);
1529 
1530 DEFINE_OCFS2_INT_EVENT(ocfs2_find_slot);
1531 
1532 /* End of trace events for fs/ocfs2/slot_map.c. */
1533 
1534 /* Trace events for fs/ocfs2/heartbeat.c. */
1535 
1536 DEFINE_OCFS2_INT_EVENT(ocfs2_do_node_down);
1537 
1538 /* End of trace events for fs/ocfs2/heartbeat.c. */
1539 
1540 #endif /* _TRACE_OCFS2_H */
1541 
1542 /* This part must be outside protection */
1543 #undef TRACE_INCLUDE_PATH
1544 #define TRACE_INCLUDE_PATH .
1545 #define TRACE_INCLUDE_FILE ocfs2_trace
1546 #include <trace/define_trace.h>
1547