Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / tracing / librbd.tp
1 #include "tracing/tracing-common.h"
2 #include "include/rbd/librbd.h"
3 #include "include/int_types.h"
4
5 TRACEPOINT_EVENT(librbd, read_enter,
6     TP_ARGS(
7         void*, imagectx,
8         const char*, name,
9         const char*, snap_name,
10         char, read_only,
11         uint64_t, offset,
12         uint64_t, length),
13     TP_FIELDS(
14         ctf_integer_hex(void*, imagectx, imagectx)
15         ctf_string(name, name)
16         ctf_string(snap_name, snap_name)
17         ctf_integer(char, read_only, read_only)
18         ctf_integer(uint64_t, offset, offset)
19         ctf_integer(uint64_t, length, length)
20     )
21 )
22
23 TRACEPOINT_EVENT(librbd, read2_enter,
24     TP_ARGS(
25         void*, imagectx,
26         const char*, name,
27         const char*, snap_name,
28         char, read_only,
29         uint64_t, offset,
30         uint64_t, length,
31         int, op_flags),
32     TP_FIELDS(
33         ctf_integer_hex(void*, imagectx, imagectx)
34         ctf_string(name, name)
35         ctf_string(snap_name, snap_name)
36         ctf_integer(char, read_only, read_only)
37         ctf_integer(uint64_t, offset, offset)
38         ctf_integer(uint64_t, length, length)
39         ctf_integer(int, op_flags, op_flags)
40     )
41 )
42 TRACEPOINT_EVENT(librbd, read_exit,
43     TP_ARGS(
44         ssize_t, retval),
45     TP_FIELDS(
46         ctf_integer(ssize_t, retval, retval)
47     )
48 )
49
50 TRACEPOINT_EVENT(librbd, read_iterate_enter,
51     TP_ARGS(
52         void*, imagectx,
53         const char*, name,
54         const char*, snap_name,
55         char, read_only,
56         uint64_t, offset,
57         uint64_t, length),
58     TP_FIELDS(
59         ctf_integer_hex(void*, imagectx, imagectx)
60         ctf_string(name, name)
61         ctf_string(snap_name, snap_name)
62         ctf_integer(char, read_only, read_only)
63         ctf_integer(uint64_t, offset, offset)
64         ctf_integer(uint64_t, length, length)
65     )
66 )
67
68 TRACEPOINT_EVENT(librbd, read_iterate_exit,
69     TP_ARGS(
70         int64_t, retval),
71     TP_FIELDS(
72         ctf_integer(int64_t, retval, retval)
73     )
74 )
75
76 TRACEPOINT_EVENT(librbd, read_iterate2_enter,
77     TP_ARGS(
78         void*, imagectx,
79         const char*, name,
80         const char*, snap_name,
81         char, read_only,
82         uint64_t, offset,
83         uint64_t, length),
84     TP_FIELDS(
85         ctf_integer_hex(void*, imagectx, imagectx)
86         ctf_string(name, name)
87         ctf_string(snap_name, snap_name)
88         ctf_integer(char, read_only, read_only)
89         ctf_integer(uint64_t, offset, offset)
90         ctf_integer(uint64_t, length, length)
91     )
92 )
93
94 TRACEPOINT_EVENT(librbd, read_iterate2_exit,
95     TP_ARGS(
96         int, retval),
97     TP_FIELDS(
98         ctf_integer(int, retval, retval)
99     )
100 )
101
102 TRACEPOINT_EVENT(librbd, write_enter,
103     TP_ARGS(
104         void*, imagectx,
105         const char*, name,
106         const char*, snap_name,
107         char, read_only,
108         uint64_t, off,
109         size_t, len,
110         const char*, buf),
111     TP_FIELDS(
112         ctf_integer_hex(void*, imagectx, imagectx)
113         ctf_string(name, name)
114         ctf_string(snap_name, snap_name)
115         ctf_integer(char, read_only, read_only)
116         ctf_integer(uint64_t, off, off)
117         ceph_ctf_sequence(unsigned char, buf, buf, size_t, len)
118     )
119 )
120
121 TRACEPOINT_EVENT(librbd, write2_enter,
122     TP_ARGS(
123         void*, imagectx,
124         const char*, name,
125         const char*, snap_name,
126         char, read_only,
127         uint64_t, off,
128         size_t, len,
129         const char*, buf,
130         int, op_flags),
131     TP_FIELDS(
132         ctf_integer_hex(void*, imagectx, imagectx)
133         ctf_string(name, name)
134         ctf_string(snap_name, snap_name)
135         ctf_integer(char, read_only, read_only)
136         ctf_integer(uint64_t, off, off)
137         ceph_ctf_sequence(unsigned char, buf, buf, size_t, len)
138         ctf_integer(int, op_flags, op_flags)
139     )
140 )
141
142
143 TRACEPOINT_EVENT(librbd, write_exit,
144     TP_ARGS(
145         ssize_t, retval),
146     TP_FIELDS(
147         ctf_integer(ssize_t, retval, retval)
148     )
149 )
150
151 TRACEPOINT_EVENT(librbd, open_image_enter,
152     TP_ARGS(
153         void*, imagectx,
154         const char*, name,
155         const char*, id,
156         const char*, snap_name,
157         int, read_only),
158     TP_FIELDS(
159         ctf_integer_hex(void*, imagectx, imagectx)
160         ctf_string(name, name)
161         ctf_string(id, id)
162         ctf_string(snap_name, snap_name)
163         ctf_integer(uint8_t, read_only, read_only ? 1 : 0)
164     )
165 )
166
167 TRACEPOINT_EVENT(librbd, open_image_exit,
168     TP_ARGS(
169         int, retval),
170     TP_FIELDS(
171         ctf_integer(int, retval, retval)
172     )
173 )
174
175 TRACEPOINT_EVENT(librbd, writesame_enter,
176     TP_ARGS(
177         void*, imagectx,
178         const char*, name,
179         const char*, snap_name,
180         char, read_only,
181         uint64_t, off,
182         size_t, len,
183         const char*, buf,
184         size_t, data_len,
185         int, op_flags),
186     TP_FIELDS(
187         ctf_integer_hex(void*, imagectx, imagectx)
188         ctf_string(name, name)
189         ctf_string(snap_name, snap_name)
190         ctf_integer(char, read_only, read_only)
191         ctf_integer(uint64_t, off, off)
192         ctf_integer(size_t, len, len)
193         ctf_integer(size_t, data_len, data_len)
194         ceph_ctf_sequence(unsigned char, buf, buf, size_t, data_len)
195         ctf_integer(int, op_flags, op_flags)
196     )
197 )
198
199 TRACEPOINT_EVENT(librbd, writesame_exit,
200     TP_ARGS(
201         ssize_t, retval),
202     TP_FIELDS(
203         ctf_integer(ssize_t, retval, retval)
204     )
205 )
206
207 TRACEPOINT_EVENT(librbd, compare_and_write_enter,
208     TP_ARGS(
209         void*, imagectx,
210         const char*, name,
211         const char*, snap_name,
212         char, read_only,
213         uint64_t, off,
214         size_t, len,
215         const char*, cmp_buf,
216         const char*, buf,
217         int, op_flags),
218     TP_FIELDS(
219         ctf_integer_hex(void*, imagectx, imagectx)
220         ctf_string(name, name)
221         ctf_string(snap_name, snap_name)
222         ctf_integer(char, read_only, read_only)
223         ctf_integer(uint64_t, off, off)
224         ceph_ctf_sequence(unsigned char, cmp_buf, cmp_buf, size_t, len)
225         ceph_ctf_sequence(unsigned char, buf, buf, size_t, len)
226         ctf_integer(int, op_flags, op_flags)
227     )
228 )
229
230 TRACEPOINT_EVENT(librbd, compare_and_write_exit,
231     TP_ARGS(
232         ssize_t, retval),
233     TP_FIELDS(
234         ctf_integer(ssize_t, retval, retval)
235     )
236 )
237
238 TRACEPOINT_EVENT(librbd, open_image_by_id_enter,
239     TP_ARGS(
240         void*, imagectx,
241         const char*, id,
242         const char*, snap_name,
243         int, read_only),
244     TP_FIELDS(
245         ctf_integer_hex(void*, imagectx, imagectx)
246         ctf_string(id, id)
247         ctf_string(snap_name, snap_name)
248         ctf_integer(uint8_t, read_only, read_only ? 1 : 0)
249     )
250 )
251
252 TRACEPOINT_EVENT(librbd, open_image_by_id_exit,
253     TP_ARGS(
254         int, retval),
255     TP_FIELDS(
256         ctf_integer(int, retval, retval)
257     )
258 )
259
260 TRACEPOINT_EVENT(librbd, aio_open_image_enter,
261     TP_ARGS(
262         void*, imagectx,
263         const char*, name,
264         const char*, id,
265         const char*, snap_name,
266         int, read_only,
267         const void*, completion),
268     TP_FIELDS(
269         ctf_integer_hex(void*, imagectx, imagectx)
270         ctf_string(name, name)
271         ctf_string(id, id)
272         ctf_string(snap_name, snap_name)
273         ctf_integer(uint8_t, read_only, read_only ? 1 : 0)
274         ctf_integer_hex(const void*, completion, completion)
275     )
276 )
277
278 TRACEPOINT_EVENT(librbd, aio_open_image_exit,
279     TP_ARGS(
280         int, retval),
281     TP_FIELDS(
282         ctf_integer(int, retval, retval)
283     )
284 )
285
286 TRACEPOINT_EVENT(librbd, aio_open_image_by_id_enter,
287     TP_ARGS(
288         void*, imagectx,
289         const char*, id,
290         const char*, snap_name,
291         int, read_only,
292         const void*, completion),
293     TP_FIELDS(
294         ctf_integer_hex(void*, imagectx, imagectx)
295         ctf_string(id, id)
296         ctf_string(snap_name, snap_name)
297         ctf_integer(uint8_t, read_only, read_only ? 1 : 0)
298         ctf_integer_hex(const void*, completion, completion)
299     )
300 )
301
302 TRACEPOINT_EVENT(librbd, aio_open_image_by_id_exit,
303     TP_ARGS(
304         int, retval),
305     TP_FIELDS(
306         ctf_integer(int, retval, retval)
307     )
308 )
309
310 TRACEPOINT_EVENT(librbd, close_image_enter,
311     TP_ARGS(
312         void*, imagectx,
313         const char*, name,
314         const char*, id),
315     TP_FIELDS(
316         ctf_integer_hex(void*, imagectx, imagectx)
317         ctf_string(name, name)
318         ctf_string(id, id)
319     )
320 )
321
322 TRACEPOINT_EVENT(librbd, close_image_exit,
323     TP_ARGS(
324         int, retval),
325     TP_FIELDS(
326         ctf_integer(int, retval, retval))
327 )
328
329 TRACEPOINT_EVENT(librbd, aio_close_image_enter,
330     TP_ARGS(
331         void*, imagectx,
332         const char*, name,
333         const char*, id,
334         const void*, completion),
335     TP_FIELDS(
336         ctf_integer_hex(void*, imagectx, imagectx)
337         ctf_string(name, name)
338         ctf_string(id, id)
339         ctf_integer_hex(const void*, completion, completion)
340     )
341 )
342
343 TRACEPOINT_EVENT(librbd, aio_close_image_exit,
344     TP_ARGS(
345         int, retval),
346     TP_FIELDS(
347         ctf_integer(int, retval, retval))
348 )
349
350 TRACEPOINT_EVENT(librbd, list_enter,
351     TP_ARGS(
352         const char*, pool_name,
353         int64_t, id),
354     TP_FIELDS(
355         ctf_string(pool_name, pool_name)
356         ctf_integer(int64_t, id, id)
357     )
358 )
359
360 TRACEPOINT_EVENT(librbd, list_entry,
361     TP_ARGS(
362         const char*, name),
363     TP_FIELDS(
364         ctf_string(name, name)
365     )
366 )
367
368 TRACEPOINT_EVENT(librbd, list_exit,
369     TP_ARGS(
370         int, retval,
371         int, size),
372     TP_FIELDS(
373         ctf_integer(int, retval, retval)
374         ctf_integer(size_t, size, size)
375     )
376 )
377
378 TRACEPOINT_EVENT(librbd, create_enter,
379     TP_ARGS(
380         const char*, pool_name,
381         int64_t, id,
382         const char*, imgname,
383         uint64_t, size,
384         int, order),
385     TP_FIELDS(
386         ctf_string(pool_name, pool_name)
387         ctf_integer(int64_t, id, id)
388         ctf_string(imgname, imgname)
389         ctf_integer(uint64_t, size, size)
390         ctf_integer(int, order, order)
391     )
392 )
393
394 TRACEPOINT_EVENT(librbd, create_exit,
395     TP_ARGS(
396         int, retval,
397         int, order),
398     TP_FIELDS(
399         ctf_integer(int, retval, retval)
400         ctf_integer(int, order, order)
401     )
402 )
403
404 TRACEPOINT_EVENT(librbd, create2_enter,
405     TP_ARGS(
406         const char*, pool_name,
407         int64_t, id,
408         const char*, imgname,
409         uint64_t, size,
410         uint64_t, features,
411         int, order),
412     TP_FIELDS(
413         ctf_string(pool_name, pool_name)
414         ctf_integer(int64_t, id, id)
415         ctf_string(imgname, imgname)
416         ctf_integer(uint64_t, size, size)
417         ctf_integer(uint64_t, features, features)
418         ctf_integer(int, order, order)
419     )
420 )
421
422 TRACEPOINT_EVENT(librbd, create2_exit,
423     TP_ARGS(
424         int, retval,
425         int, order),
426     TP_FIELDS(
427         ctf_integer(int, retval, retval)
428         ctf_integer(int, order, order)
429     )
430 )
431
432 TRACEPOINT_EVENT(librbd, create3_enter,
433     TP_ARGS(
434         const char*, pool_name,
435         int64_t, id,
436         const char*, imgname,
437         uint64_t, size,
438         uint64_t, features,
439         int, order,
440         uint64_t, stripe_unit,
441         uint64_t, stripe_count),
442     TP_FIELDS(
443         ctf_string(pool_name, pool_name)
444         ctf_integer(int64_t, id, id)
445         ctf_string(imgname, imgname)
446         ctf_integer(uint64_t, size, size)
447         ctf_integer(uint64_t, features, features)
448         ctf_integer(int, order, order)
449         ctf_integer(uint64_t, stripe_unit, stripe_unit)
450         ctf_integer(uint64_t, stripe_count, stripe_count)
451     )
452 )
453
454 TRACEPOINT_EVENT(librbd, create3_exit,
455     TP_ARGS(
456         int, retval,
457         int, order),
458     TP_FIELDS(
459         ctf_integer(int, retval, retval)
460         ctf_integer(int, order, order)
461     )
462 )
463
464 TRACEPOINT_EVENT(librbd, create4_enter,
465     TP_ARGS(
466         const char*, pool_name,
467         int64_t, id,
468         const char*, imgname,
469         uint64_t, size,
470         void*, opts),
471     TP_FIELDS(
472         ctf_string(pool_name, pool_name)
473         ctf_integer(int64_t, id, id)
474         ctf_string(imgname, imgname)
475         ctf_integer_hex(void*, opts, opts)
476     )
477 )
478
479 TRACEPOINT_EVENT(librbd, create4_exit,
480     TP_ARGS(
481         int, retval),
482     TP_FIELDS(
483         ctf_integer(int, retval, retval)
484     )
485 )
486
487 TRACEPOINT_EVENT(librbd, remove_enter,
488     TP_ARGS(
489         const char*, pool_name,
490         int64_t, id,
491         const char*, imgname),
492     TP_FIELDS(
493         ctf_string(pool_name, pool_name)
494         ctf_integer(int64_t, id, id)
495         ctf_string(imgname, imgname)
496     )
497 )
498
499 TRACEPOINT_EVENT(librbd, remove_exit,
500     TP_ARGS(
501         int, retval),
502     TP_FIELDS(
503         ctf_integer(int, retval, retval)
504     )
505 )
506
507 TRACEPOINT_EVENT(librbd, trash_move_enter,
508     TP_ARGS(
509         const char*, pool_name,
510         int64_t, id,
511         const char*, imgname),
512     TP_FIELDS(
513         ctf_string(pool_name, pool_name)
514         ctf_integer(int64_t, id, id)
515         ctf_string(imgname, imgname)
516     )
517 )
518
519 TRACEPOINT_EVENT(librbd, trash_move_exit,
520     TP_ARGS(
521         int, retval),
522     TP_FIELDS(
523         ctf_integer(int, retval, retval)
524     )
525 )
526
527 TRACEPOINT_EVENT(librbd, trash_list_enter,
528     TP_ARGS(
529         const char*, pool_name,
530         int64_t, id),
531     TP_FIELDS(
532         ctf_string(pool_name, pool_name)
533         ctf_integer(int64_t, id, id)
534     )
535 )
536
537 TRACEPOINT_EVENT(librbd, trash_list_entry,
538     TP_ARGS(
539         const char*, id),
540     TP_FIELDS(
541         ctf_string(id, id)
542     )
543 )
544
545 TRACEPOINT_EVENT(librbd, trash_list_exit,
546     TP_ARGS(
547         int, retval,
548         int, size),
549     TP_FIELDS(
550         ctf_integer(int, retval, retval)
551         ctf_integer(size_t, size, size)
552     )
553 )
554
555 TRACEPOINT_EVENT(librbd, trash_remove_enter,
556     TP_ARGS(
557         const char*, pool_name,
558         int64_t, id,
559         const char*, imgid,
560         uint8_t, force),
561     TP_FIELDS(
562         ctf_string(pool_name, pool_name)
563         ctf_integer(int64_t, id, id)
564         ctf_string(imgid, imgid)
565         ctf_integer(uint8_t, force, force)
566     )
567 )
568
569 TRACEPOINT_EVENT(librbd, trash_remove_exit,
570     TP_ARGS(
571         int, retval),
572     TP_FIELDS(
573         ctf_integer(int, retval, retval)
574     )
575 )
576
577 TRACEPOINT_EVENT(librbd, trash_undelete_enter,
578     TP_ARGS(
579         const char*, pool_name,
580         int64_t, id,
581         const char*, imgid,
582         const char*, imgnewname),
583     TP_FIELDS(
584         ctf_string(pool_name, pool_name)
585         ctf_integer(int64_t, id, id)
586         ctf_string(imgid, imgid)
587         ctf_string(imgnewname, imgnewname)
588     )
589 )
590
591 TRACEPOINT_EVENT(librbd, trash_undelete_exit,
592     TP_ARGS(
593         int, retval),
594     TP_FIELDS(
595         ctf_integer(int, retval, retval)
596     )
597 )
598
599 TRACEPOINT_EVENT(librbd, aio_write_enter,
600     TP_ARGS(
601         void*, imagectx,
602         const char*, name,
603         const char*, snap_name,
604         char, read_only,
605         uint64_t, off,
606         size_t, len,
607         const char*, buf,
608         const void*, completion),
609     TP_FIELDS(
610         ctf_integer_hex(void*, imagectx, imagectx)
611         ctf_string(name, name)
612         ctf_string(snap_name, snap_name)
613         ctf_integer(char, read_only, read_only)
614         ctf_integer(uint64_t, off, off)
615         ctf_integer(size_t, len, len)
616         ceph_ctf_sequence(unsigned char, buf, buf, size_t, len)
617         ctf_integer_hex(const void*, completion, completion)
618     )
619 )
620
621 TRACEPOINT_EVENT(librbd, aio_write2_enter,
622     TP_ARGS(
623         void*, imagectx,
624         const char*, name,
625         const char*, snap_name,
626         char, read_only,
627         uint64_t, off,
628         size_t, len,
629         const char*, buf,
630         const void*, completion,
631         int, op_flags),
632     TP_FIELDS(
633         ctf_integer_hex(void*, imagectx, imagectx)
634         ctf_string(name, name)
635         ctf_string(snap_name, snap_name)
636         ctf_integer(char, read_only, read_only)
637         ctf_integer(uint64_t, off, off)
638         ctf_integer(size_t, len, len)
639         ceph_ctf_sequence(unsigned char, buf, buf, size_t, len)
640         ctf_integer_hex(const void*, completion, completion)
641         ctf_integer(int, op_flags, op_flags)
642     )
643 )
644 TRACEPOINT_EVENT(librbd, aio_write_exit,
645     TP_ARGS(
646         int, retval),
647     TP_FIELDS(
648         ctf_integer(int, retval, retval)
649     )
650 )
651
652 TRACEPOINT_EVENT(librbd, aio_read_enter,
653     TP_ARGS(
654         void*, imagectx,
655         const char*, name,
656         const char*, snap_name,
657         char, read_only,
658         uint64_t, offset,
659         uint64_t, length,
660         const char*, buf,
661         const void*, completion),
662     TP_FIELDS(
663         ctf_integer_hex(void*, imagectx, imagectx)
664         ctf_string(name, name)
665         ctf_string(snap_name, snap_name)
666         ctf_integer(char, read_only, read_only)
667         ctf_integer(uint64_t, offset, offset)
668         ctf_integer(uint64_t, length, length)
669         ctf_integer_hex(const void*, completion, completion)
670     )
671 )
672
673 TRACEPOINT_EVENT(librbd, aio_read2_enter,
674     TP_ARGS(
675         void*, imagectx,
676         const char*, name,
677         const char*, snap_name,
678         char, read_only,
679         uint64_t, offset,
680         uint64_t, length,
681         const char*, buf,
682         const void*, completion,
683         int, op_flags),
684     TP_FIELDS(
685         ctf_integer_hex(void*, imagectx, imagectx)
686         ctf_string(name, name)
687         ctf_string(snap_name, snap_name)
688         ctf_integer(char, read_only, read_only)
689         ctf_integer(uint64_t, offset, offset)
690         ctf_integer(uint64_t, length, length)
691         ctf_integer_hex(const void*, completion, completion)
692         ctf_integer(int, op_flags, op_flags)
693     )
694 )
695
696
697 TRACEPOINT_EVENT(librbd, aio_read_exit,
698     TP_ARGS(
699         int, retval),
700     TP_FIELDS(
701         ctf_integer(int, retval, retval)
702     )
703 )
704
705 TRACEPOINT_EVENT(librbd, aio_discard_enter,
706     TP_ARGS(
707         void*, imagectx,
708         const char*, name,
709         const char*, snap_name,
710         char, read_only,
711         uint64_t, off,
712         uint64_t, len,
713         void*, completion),
714     TP_FIELDS(
715         ctf_integer_hex(void*, imagectx, imagectx)
716         ctf_string(name, name)
717         ctf_string(snap_name, snap_name)
718         ctf_integer(char, read_only, read_only)
719         ctf_integer(uint64_t, off, off)
720         ctf_integer(uint64_t, len, len)
721         ctf_integer_hex(void*, completion, completion)
722     )
723 )
724
725 TRACEPOINT_EVENT(librbd, aio_discard_exit,
726     TP_ARGS(
727         int, retval),
728     TP_FIELDS(
729         ctf_integer(int, retval, retval)
730     )
731 )
732
733 TRACEPOINT_EVENT(librbd, invalidate_cache_enter,
734     TP_ARGS(
735         void*, imagectx,
736         const char*, name,
737         const char*, snap_name,
738         char, read_only),
739     TP_FIELDS(
740         ctf_integer_hex(void*, imagectx, imagectx)
741         ctf_string(name, name)
742         ctf_string(snap_name, snap_name)
743         ctf_integer(char, read_only, read_only)
744     )
745 )
746
747 TRACEPOINT_EVENT(librbd, invalidate_cache_exit,
748     TP_ARGS(
749         int, retval),
750     TP_FIELDS(
751         ctf_integer(int, retval, retval)
752     )
753 )
754
755 TRACEPOINT_EVENT(librbd, poll_io_events_enter,
756     TP_ARGS(
757         void*, imagectx,
758         int, numcomp),
759     TP_FIELDS(
760         ctf_integer_hex(void*, imagectx, imagectx)
761         ctf_integer(int, numcomp, numcomp)
762     )
763 )
764
765 TRACEPOINT_EVENT(librbd, poll_io_events_exit,
766     TP_ARGS(
767         int, retval),
768     TP_FIELDS(
769         ctf_integer(int, retval, retval)
770     )
771 )
772 TRACEPOINT_EVENT(librbd, metadata_get_enter,
773     TP_ARGS(
774         void*, imagectx,
775         const char*, key),
776     TP_FIELDS(
777         ctf_integer_hex(void*, imagectx, imagectx)
778         ctf_string(key, key)
779     )
780 )
781
782 TRACEPOINT_EVENT(librbd, metadata_get_exit,
783     TP_ARGS(
784         int, retval,
785         const char*, key,
786         const char*, value),
787     TP_FIELDS(
788         ctf_integer(int, retval, retval)
789         ctf_string(key, key)
790         ctf_string(value, value)
791     )
792 )
793
794 TRACEPOINT_EVENT(librbd, metadata_set_enter,
795     TP_ARGS(
796         void*, imagectx,
797         const char*, key,
798         const char*, value),
799     TP_FIELDS(
800         ctf_integer_hex(void*, imagectx, imagectx)
801         ctf_string(key, key)
802         ctf_string(value, value)
803     )
804 )
805
806 TRACEPOINT_EVENT(librbd, metadata_set_exit,
807     TP_ARGS(
808         int, retval),
809     TP_FIELDS(
810         ctf_integer(int, retval, retval)
811     )
812 )
813
814 TRACEPOINT_EVENT(librbd, metadata_remove_enter,
815     TP_ARGS(
816         void*, imagectx,
817         const char*, key),
818     TP_FIELDS(
819         ctf_integer_hex(void*, imagectx, imagectx)
820         ctf_string(key, key)
821     )
822 )
823
824 TRACEPOINT_EVENT(librbd, metadata_remove_exit,
825     TP_ARGS(
826         int, retval),
827     TP_FIELDS(
828         ctf_integer(int, retval, retval)
829     )
830 )
831
832 TRACEPOINT_EVENT(librbd, metadata_list_enter,
833     TP_ARGS(
834         void*, imagectx),
835     TP_FIELDS(
836         ctf_integer_hex(void*, imagectx, imagectx)
837     )
838 )
839
840 TRACEPOINT_EVENT(librbd, metadata_list_entry,
841     TP_ARGS(
842         const char*, key,
843         const char*, value),
844     TP_FIELDS(
845         ctf_string(key, key)
846         ctf_string(value, value)
847     )
848 )
849
850 TRACEPOINT_EVENT(librbd, metadata_list_exit,
851     TP_ARGS(
852         int, retval),
853     TP_FIELDS(
854         ctf_integer(int, retval, retval)
855     )
856 )
857
858 TRACEPOINT_EVENT(librbd, flush_enter,
859     TP_ARGS(
860         void*, imagectx,
861         const char*, name,
862         const char*, snap_name,
863         char, read_only),
864     TP_FIELDS(
865         ctf_integer_hex(void*, imagectx, imagectx)
866         ctf_string(name, name)
867         ctf_string(snap_name, snap_name)
868         ctf_integer(char, read_only, read_only)
869     )
870 )
871
872 TRACEPOINT_EVENT(librbd, flush_exit,
873     TP_ARGS(
874         int, retval),
875     TP_FIELDS(
876         ctf_integer(int, retval, retval)
877     )
878 )
879
880 TRACEPOINT_EVENT(librbd, aio_flush_enter,
881     TP_ARGS(
882         void*, imagectx,
883         const char*, name,
884         const char*, snap_name,
885         char, read_only,
886         const void*, completion),
887     TP_FIELDS(
888         ctf_integer_hex(void*, imagectx, imagectx)
889         ctf_string(name, name)
890         ctf_string(snap_name, snap_name)
891         ctf_integer(char, read_only, read_only)
892         ctf_integer_hex(const void*, completion, completion)
893     )
894 )
895
896 TRACEPOINT_EVENT(librbd, aio_flush_exit,
897     TP_ARGS(
898         int, retval),
899     TP_FIELDS(
900         ctf_integer(int, retval, retval)
901     )
902 )
903
904 TRACEPOINT_EVENT(librbd, copy_enter,
905     TP_ARGS(
906         void*, src_imagectx,
907         const char*, src_name,
908         const char*, src_snap_name,
909         char, src_read_only,
910         const char*, dst_pool_name,
911         uint64_t, dst_id,
912         const char*, dst_name),
913     TP_FIELDS(
914         ctf_integer_hex(void*, src_imagectx, src_imagectx)
915         ctf_string(src_name, src_name)
916         ctf_string(src_snap_name, src_snap_name)
917         ctf_integer(char, src_read_only, src_read_only)
918         ctf_string(dst_pool_name, dst_pool_name)
919         ctf_integer(uint64_t, dst_id, dst_id)
920         ctf_string(dst_name, dst_name)
921     )
922 )
923
924 TRACEPOINT_EVENT(librbd, copy_exit,
925     TP_ARGS(
926         int, retval),
927     TP_FIELDS(
928         ctf_integer(int, retval, retval)
929     )
930 )
931
932 TRACEPOINT_EVENT(librbd, copy2_enter,
933     TP_ARGS(
934         void*, src_imagectx,
935         const char*, src_name,
936         const char*, src_snap_name,
937         char, src_read_only,
938         void*, dst_imagectx,
939         const char*, dst_name,
940         const char*, dst_snap_name,
941         char, dst_read_only),
942     TP_FIELDS(
943         ctf_integer_hex(void*, src_imagectx, src_imagectx)
944         ctf_string(src_name, src_name)
945         ctf_string(src_snap_name, src_snap_name)
946         ctf_integer(char, src_read_only, src_read_only)
947         ctf_integer_hex(void*, dst_imagectx, dst_imagectx)
948         ctf_string(dst_name, dst_name)
949         ctf_string(dst_snap_name, dst_snap_name)
950         ctf_integer(char, dst_read_only, dst_read_only)
951     )
952 )
953
954 TRACEPOINT_EVENT(librbd, copy2_exit,
955     TP_ARGS(
956         int, retval),
957     TP_FIELDS(
958         ctf_integer(int, retval, retval)
959     )
960 )
961
962 TRACEPOINT_EVENT(librbd, copy3_enter,
963     TP_ARGS(
964         void*, src_imagectx,
965         const char*, src_name,
966         const char*, src_snap_name,
967         char, src_read_only,
968         const char*, dst_pool_name,
969         uint64_t, dst_id,
970         const char*, dst_name,
971         void*, opts),
972     TP_FIELDS(
973         ctf_integer_hex(void*, src_imagectx, src_imagectx)
974         ctf_string(src_name, src_name)
975         ctf_string(src_snap_name, src_snap_name)
976         ctf_integer(char, src_read_only, src_read_only)
977         ctf_string(dst_pool_name, dst_pool_name)
978         ctf_integer(uint64_t, dst_id, dst_id)
979         ctf_string(dst_name, dst_name)
980         ctf_integer_hex(void*, opts, opts)
981     )
982 )
983
984 TRACEPOINT_EVENT(librbd, copy3_exit,
985     TP_ARGS(
986         int, retval),
987     TP_FIELDS(
988         ctf_integer(int, retval, retval)
989     )
990 )
991
992 TRACEPOINT_EVENT(librbd, copy4_enter,
993     TP_ARGS(
994         void*, src_imagectx,
995         const char*, src_name,
996         const char*, src_snap_name,
997         char, src_read_only,
998         const char*, dst_pool_name,
999         uint64_t, dst_id,
1000         const char*, dst_name,
1001         void*, opts,
1002         size_t, sparse_size),
1003     TP_FIELDS(
1004         ctf_integer_hex(void*, src_imagectx, src_imagectx)
1005         ctf_string(src_name, src_name)
1006         ctf_string(src_snap_name, src_snap_name)
1007         ctf_integer(char, src_read_only, src_read_only)
1008         ctf_string(dst_pool_name, dst_pool_name)
1009         ctf_integer(uint64_t, dst_id, dst_id)
1010         ctf_string(dst_name, dst_name)
1011         ctf_integer_hex(void*, opts, opts)
1012         ctf_integer(size_t, sparse_size, sparse_size)
1013     )
1014 )
1015
1016 TRACEPOINT_EVENT(librbd, copy4_exit,
1017     TP_ARGS(
1018         int, retval),
1019     TP_FIELDS(
1020         ctf_integer(int, retval, retval)
1021     )
1022 )
1023
1024 TRACEPOINT_EVENT(librbd, resize_enter,
1025     TP_ARGS(
1026         void*, imagectx,
1027         const char*, name,
1028         const char*, snap_name,
1029         char, read_only,
1030         uint64_t, size),
1031     TP_FIELDS(
1032         ctf_integer_hex(void*, imagectx, imagectx)
1033         ctf_string(name, name)
1034         ctf_string(snap_name, snap_name)
1035         ctf_integer(char, read_only, read_only)
1036         ctf_integer(uint64_t, size, size)
1037     )
1038 )
1039
1040 TRACEPOINT_EVENT(librbd, resize_exit,
1041     TP_ARGS(
1042         int, retval),
1043     TP_FIELDS(
1044         ctf_integer(int, retval, retval)
1045     )
1046 )
1047
1048 TRACEPOINT_EVENT(librbd, rename_enter,
1049     TP_ARGS(
1050         const char*, pool_name,
1051         uint64_t, id,
1052         const char*, srcname,
1053         const char*, dstname),
1054     TP_FIELDS(
1055         ctf_string(pool_name, pool_name)
1056         ctf_integer(uint64_t, id, id)
1057         ctf_string(srcname, srcname)
1058         ctf_string(dstname, dstname)
1059     )
1060 )
1061
1062 TRACEPOINT_EVENT(librbd, rename_exit,
1063     TP_ARGS(
1064         int, retval),
1065     TP_FIELDS(
1066         ctf_integer(int, retval, retval)
1067     )
1068 )
1069
1070 TRACEPOINT_EVENT(librbd, discard_enter,
1071     TP_ARGS(
1072         void*, imagectx,
1073         const char*, name,
1074         const char*, snap_name,
1075         char, read_only,
1076         uint64_t, off,
1077         uint64_t, len),
1078     TP_FIELDS(
1079         ctf_integer_hex(void*, imagectx, imagectx)
1080         ctf_string(name, name)
1081         ctf_string(snap_name, snap_name)
1082         ctf_integer(char, read_only, read_only)
1083         ctf_integer(uint64_t, off, off)
1084         ctf_integer(uint64_t, len, len)
1085     )
1086 )
1087
1088 TRACEPOINT_EVENT(librbd, discard_exit,
1089     TP_ARGS(
1090         int, retval),
1091     TP_FIELDS(
1092         ctf_integer(int, retval, retval)
1093     )
1094 )
1095
1096 TRACEPOINT_EVENT(librbd, aio_is_complete_enter,
1097     TP_ARGS(
1098         rbd_completion_t, completion),
1099     TP_FIELDS(
1100         ctf_integer_hex(rbd_completion_t, completion, completion)
1101     )
1102 )
1103
1104 TRACEPOINT_EVENT(librbd, aio_is_complete_exit,
1105     TP_ARGS(
1106         int, retval),
1107     TP_FIELDS(
1108         ctf_integer(int, retval, retval)
1109     )
1110 )
1111
1112 TRACEPOINT_EVENT(librbd, aio_get_return_value_enter,
1113     TP_ARGS(
1114         rbd_completion_t, completion),
1115     TP_FIELDS(
1116         ctf_integer_hex(rbd_completion_t, completion, completion)
1117     )
1118 )
1119
1120 TRACEPOINT_EVENT(librbd, aio_get_return_value_exit,
1121     TP_ARGS(
1122         ssize_t, retval),
1123     TP_FIELDS(
1124         ctf_integer(ssize_t, retval, retval)
1125     )
1126 )
1127
1128 TRACEPOINT_EVENT(librbd, aio_wait_for_complete_enter,
1129     TP_ARGS(
1130         rbd_completion_t, completion),
1131     TP_FIELDS(
1132         ctf_integer_hex(rbd_completion_t, completion, completion)
1133     )
1134 )
1135
1136 TRACEPOINT_EVENT(librbd, aio_wait_for_complete_exit,
1137     TP_ARGS(
1138         int, retval),
1139     TP_FIELDS(
1140         ctf_integer(int, retval, retval)
1141     )
1142 )
1143
1144 TRACEPOINT_EVENT(librbd, aio_complete_enter,
1145     TP_ARGS(
1146         rbd_completion_t, completion,
1147         ssize_t, rval),
1148     TP_FIELDS(
1149         ctf_integer_hex(rbd_completion_t, completion, completion)
1150         ctf_integer(ssize_t, rval, rval)
1151     )
1152 )
1153
1154 TRACEPOINT_EVENT(librbd, aio_complete_exit,
1155     TP_ARGS(),
1156     TP_FIELDS()
1157 )
1158
1159 TRACEPOINT_EVENT(librbd, aio_writesame_enter,
1160     TP_ARGS(
1161         void*, imagectx,
1162         const char*, name,
1163         const char*, snap_name,
1164         char, read_only,
1165         uint64_t, off,
1166         size_t, len,
1167         const char*, buf,
1168         size_t, data_len,
1169         const void*, completion,
1170         int, op_flags),
1171     TP_FIELDS(
1172         ctf_integer_hex(void*, imagectx, imagectx)
1173         ctf_string(name, name)
1174         ctf_string(snap_name, snap_name)
1175         ctf_integer(char, read_only, read_only)
1176         ctf_integer(uint64_t, off, off)
1177         ctf_integer(size_t, len, len)
1178         ctf_integer(size_t, data_len, data_len)
1179         ceph_ctf_sequence(unsigned char, buf, buf, size_t, data_len)
1180         ctf_integer_hex(const void*, completion, completion)
1181         ctf_integer(int, op_flags, op_flags)
1182     )
1183 )
1184
1185 TRACEPOINT_EVENT(librbd, aio_writesame_exit,
1186     TP_ARGS(
1187         ssize_t, retval),
1188     TP_FIELDS(
1189         ctf_integer(ssize_t, retval, retval)
1190     )
1191 )
1192
1193 TRACEPOINT_EVENT(librbd, aio_compare_and_write_enter,
1194     TP_ARGS(
1195         void*, imagectx,
1196         const char*, name,
1197         const char*, snap_name,
1198         char, read_only,
1199         uint64_t, off,
1200         size_t, len,
1201         const char*, cmp_buf,
1202         const char*, buf,
1203         const void*, completion,
1204               int, op_flags),
1205     TP_FIELDS(
1206         ctf_integer_hex(void*, imagectx, imagectx)
1207         ctf_string(name, name)
1208         ctf_string(snap_name, snap_name)
1209         ctf_integer(char, read_only, read_only)
1210         ctf_integer(uint64_t, off, off)
1211         ctf_integer(size_t, len, len)
1212         ceph_ctf_sequence(unsigned char, cmp_buf, cmp_buf, size_t, len)
1213         ceph_ctf_sequence(unsigned char, buf, buf, size_t, len)
1214         ctf_integer_hex(const void*, completion, completion)
1215         ctf_integer(int, op_flags, op_flags)
1216     )
1217 )
1218 TRACEPOINT_EVENT(librbd, aio_compare_and_write_exit,
1219     TP_ARGS(
1220         int, retval),
1221     TP_FIELDS(
1222         ctf_integer(int, retval, retval)
1223     )
1224 )
1225
1226
1227 TRACEPOINT_EVENT(librbd, clone_enter,
1228     TP_ARGS(
1229         const char*, parent_pool_name,
1230         uint64_t, parent_id,
1231         const char*, parent_name,
1232         const char*, parent_snap_name,
1233         const char*, child_pool_name,
1234         uint64_t, child_id,
1235         const char*, child_name,
1236         uint64_t, features),
1237     TP_FIELDS(
1238         ctf_string(parent_pool_name, parent_pool_name)
1239         ctf_integer(uint64_t, parent_id, parent_id)
1240         ctf_string(parent_name, parent_name)
1241         ctf_string(parent_snap_name, parent_snap_name)
1242         ctf_string(child_pool_name, child_pool_name)
1243         ctf_integer(uint64_t, child_id, child_id)
1244         ctf_string(child_name, child_name)
1245         ctf_integer(uint64_t, features, features)
1246     )
1247 )
1248
1249 TRACEPOINT_EVENT(librbd, clone_exit,
1250     TP_ARGS(
1251         int, retval,
1252         int, order),
1253     TP_FIELDS(
1254         ctf_integer(int, retval, retval)
1255         ctf_integer(int, order, order)
1256     )
1257 )
1258
1259 TRACEPOINT_EVENT(librbd, clone2_enter,
1260     TP_ARGS(
1261         const char*, parent_pool_name,
1262         uint64_t, parent_id,
1263         const char*, parent_name,
1264         const char*, parent_snap_name,
1265         const char*, child_pool_name,
1266         uint64_t, child_id,
1267         const char*, child_name,
1268         uint64_t, features,
1269         uint64_t, stripe_unit,
1270         int, stripe_count),
1271     TP_FIELDS(
1272         ctf_string(parent_pool_name, parent_pool_name)
1273         ctf_integer(uint64_t, parent_id, parent_id)
1274         ctf_string(parent_name, parent_name)
1275         ctf_string(parent_snap_name, parent_snap_name)
1276         ctf_string(child_pool_name, child_pool_name)
1277         ctf_integer(uint64_t, child_id, child_id)
1278         ctf_string(child_name, child_name)
1279         ctf_integer(uint64_t, features, features)
1280         ctf_integer(uint64_t, stripe_unit, stripe_unit)
1281         ctf_integer(int, stripe_count, stripe_count)
1282     )
1283 )
1284
1285 TRACEPOINT_EVENT(librbd, clone2_exit,
1286     TP_ARGS(
1287         int, retval,
1288         int, order),
1289     TP_FIELDS(
1290         ctf_integer(int, retval, retval)
1291         ctf_integer(int, order, order)
1292     )
1293 )
1294
1295 TRACEPOINT_EVENT(librbd, clone3_enter,
1296     TP_ARGS(
1297         const char*, parent_pool_name,
1298         uint64_t, parent_id,
1299         const char*, parent_name,
1300         const char*, parent_snap_name,
1301         const char*, child_pool_name,
1302         uint64_t, child_id,
1303         const char*, child_name,
1304         void*, opts),
1305     TP_FIELDS(
1306         ctf_string(parent_pool_name, parent_pool_name)
1307         ctf_integer(uint64_t, parent_id, parent_id)
1308         ctf_string(parent_name, parent_name)
1309         ctf_string(parent_snap_name, parent_snap_name)
1310         ctf_string(child_pool_name, child_pool_name)
1311         ctf_integer(uint64_t, child_id, child_id)
1312         ctf_string(child_name, child_name)
1313         ctf_integer_hex(void*, opts, opts)
1314     )
1315 )
1316
1317 TRACEPOINT_EVENT(librbd, clone3_exit,
1318     TP_ARGS(
1319         int, retval),
1320     TP_FIELDS(
1321         ctf_integer(int, retval, retval)
1322     )
1323 )
1324
1325 TRACEPOINT_EVENT(librbd, flatten_enter,
1326     TP_ARGS(
1327         void*, imagectx,
1328         const char*, name,
1329         const char*, id),
1330     TP_FIELDS(
1331         ctf_integer_hex(void*, imagectx, imagectx)
1332         ctf_string(name, name)
1333         ctf_string(id, id)
1334     )
1335 )
1336
1337 TRACEPOINT_EVENT(librbd, flatten_exit,
1338     TP_ARGS(
1339         int, retval),
1340     TP_FIELDS(
1341         ctf_integer(int, retval, retval)
1342     )
1343 )
1344
1345 TRACEPOINT_EVENT(librbd, snap_create_enter,
1346     TP_ARGS(
1347         void*, imagectx,
1348         const char*, name,
1349         const char*, snap_name,
1350         char, read_only,
1351         const char*, create_snap_name),
1352     TP_FIELDS(
1353         ctf_integer_hex(void*, imagectx, imagectx)
1354         ctf_string(name, name)
1355         ctf_string(snap_name, snap_name)
1356         ctf_integer(char, read_only, read_only)
1357         ctf_string(create_snap_name, create_snap_name)
1358     )
1359 )
1360
1361 TRACEPOINT_EVENT(librbd, snap_create_exit,
1362     TP_ARGS(
1363         int, retval),
1364     TP_FIELDS(
1365         ctf_integer(int, retval, retval)
1366     )
1367 )
1368
1369 TRACEPOINT_EVENT(librbd, snap_remove_enter,
1370     TP_ARGS(
1371         void*, imagectx,
1372         const char*, name,
1373         const char*, snap_name,
1374         char, read_only,
1375         const char*, remove_snap_name),
1376     TP_FIELDS(
1377         ctf_integer_hex(void*, imagectx, imagectx)
1378         ctf_string(name, name)
1379         ctf_string(snap_name, snap_name)
1380         ctf_integer(char, read_only, read_only)
1381         ctf_string(remove_snap_name, remove_snap_name)
1382     )
1383 )
1384
1385 TRACEPOINT_EVENT(librbd, snap_remove_exit,
1386     TP_ARGS(
1387         int, retval),
1388     TP_FIELDS(
1389         ctf_integer(int, retval, retval)
1390     )
1391 )
1392
1393 TRACEPOINT_EVENT(librbd, snap_remove2_enter,
1394     TP_ARGS(
1395         void*, imagectx,
1396         const char*, name,
1397         const char*, snap_name,
1398         char, read_only,
1399         const char*, remove_snap_name,
1400         uint32_t, flags),
1401     TP_FIELDS(
1402         ctf_integer_hex(void*, imagectx, imagectx)
1403         ctf_string(name, name)
1404         ctf_string(snap_name, snap_name)
1405         ctf_integer(char, read_only, read_only)
1406         ctf_string(remove_snap_name, remove_snap_name)
1407         ctf_integer(uint32_t, flags, flags)
1408     )
1409 )
1410
1411 TRACEPOINT_EVENT(librbd, snap_remove2_exit,
1412     TP_ARGS(
1413         int, retval),
1414     TP_FIELDS(
1415         ctf_integer(int, retval, retval)
1416     )
1417 )
1418
1419 TRACEPOINT_EVENT(librbd, snap_rollback_enter,
1420     TP_ARGS(
1421         void*, imagectx,
1422         const char*, name,
1423         const char*, snap_name,
1424         char, read_only,
1425         const char*, rollback_snap_name),
1426     TP_FIELDS(
1427         ctf_integer_hex(void*, imagectx, imagectx)
1428         ctf_string(name, name)
1429         ctf_string(snap_name, snap_name)
1430         ctf_integer(char, read_only, read_only)
1431         ctf_string(rollback_snap_name, rollback_snap_name)
1432     )
1433 )
1434
1435 TRACEPOINT_EVENT(librbd, snap_rollback_exit,
1436     TP_ARGS(
1437         int, retval),
1438     TP_FIELDS(
1439         ctf_integer(int, retval, retval)
1440     )
1441 )
1442
1443 TRACEPOINT_EVENT(librbd, snap_rename_enter,
1444     TP_ARGS(
1445         void*, imagectx,
1446         const char*, name,
1447         const char*, snap_name,
1448         char, read_only,
1449         const char*, src_snap_name,
1450         const char*, dst_snap_name),
1451     TP_FIELDS(
1452         ctf_integer_hex(void*, imagectx, imagectx)
1453         ctf_string(name, name)
1454         ctf_string(snap_name, snap_name)
1455         ctf_integer(char, read_only, read_only)
1456         ctf_string(src_snap_name, src_snap_name)
1457         ctf_string(dst_snap_name, dst_snap_name)
1458     )
1459 )
1460
1461 TRACEPOINT_EVENT(librbd, snap_rename_exit,
1462     TP_ARGS(
1463         int, retval),
1464     TP_FIELDS(
1465         ctf_integer(int, retval, retval)
1466     )
1467 )
1468
1469 TRACEPOINT_EVENT(librbd, snap_list_enter,
1470     TP_ARGS(
1471         void*, imagectx,
1472         const char*, name,
1473         const char*, snap_name,
1474         char, read_only,
1475         void*, snaps),
1476     TP_FIELDS(
1477         ctf_integer_hex(void*, imagectx, imagectx)
1478         ctf_string(name, name)
1479         ctf_string(snap_name, snap_name)
1480         ctf_integer(char, read_only, read_only)
1481         ctf_integer_hex(void*, snaps, snaps)
1482     )
1483 )
1484
1485 TRACEPOINT_EVENT(librbd, snap_list_entry,
1486     TP_ARGS(
1487         uint64_t, id,
1488         uint64_t, size,
1489         const char*, name),
1490     TP_FIELDS(
1491         ctf_integer(uint64_t, id, id)
1492         ctf_integer(uint64_t, size, size)
1493         ctf_string(name, name)
1494     )
1495 )
1496
1497 TRACEPOINT_EVENT(librbd, snap_list_exit,
1498     TP_ARGS(
1499         int, retval,
1500         int, max_snaps),
1501     TP_FIELDS(
1502         ctf_integer(int, retval, retval)
1503         ctf_integer(int, max_snaps, max_snaps)
1504     )
1505 )
1506
1507 TRACEPOINT_EVENT(librbd, snap_list_end_enter,
1508     TP_ARGS(
1509         void*, snaps),
1510     TP_FIELDS(
1511         ctf_integer_hex(void*, snaps, snaps)
1512     )
1513 )
1514
1515 TRACEPOINT_EVENT(librbd, snap_list_end_exit,
1516     TP_ARGS(),
1517     TP_FIELDS()
1518 )
1519
1520 TRACEPOINT_EVENT(librbd, snap_protect_enter,
1521     TP_ARGS(
1522         void*, imagectx,
1523         const char*, name,
1524         const char*, snap_name,
1525         char, read_only,
1526         const char*, protect_snap_name),
1527     TP_FIELDS(
1528         ctf_integer_hex(void*, imagectx, imagectx)
1529         ctf_string(name, name)
1530         ctf_string(snap_name, snap_name)
1531         ctf_integer(char, read_only, read_only)
1532         ctf_string(protect_snap_name, protect_snap_name)
1533     )
1534 )
1535
1536 TRACEPOINT_EVENT(librbd, snap_protect_exit,
1537     TP_ARGS(
1538         int, retval),
1539     TP_FIELDS(
1540         ctf_integer(int, retval, retval)
1541     )
1542 )
1543
1544 TRACEPOINT_EVENT(librbd, snap_unprotect_enter,
1545     TP_ARGS(
1546         void*, imagectx,
1547         const char*, name,
1548         const char*, snap_name,
1549         char, read_only,
1550         const char*, unprotect_snap_name),
1551     TP_FIELDS(
1552         ctf_integer_hex(void*, imagectx, imagectx)
1553         ctf_string(name, name)
1554         ctf_string(snap_name, snap_name)
1555         ctf_integer(char, read_only, read_only)
1556         ctf_string(unprotect_snap_name, unprotect_snap_name)
1557     )
1558 )
1559
1560 TRACEPOINT_EVENT(librbd, snap_unprotect_exit,
1561     TP_ARGS(
1562         int, retval),
1563     TP_FIELDS(
1564         ctf_integer(int, retval, retval)
1565     )
1566 )
1567
1568 TRACEPOINT_EVENT(librbd, snap_is_protected_enter,
1569     TP_ARGS(
1570         void*, imagectx,
1571         const char*, name,
1572         const char*, snap_name,
1573         char, read_only,
1574         const char*, is_protected_snap_name),
1575     TP_FIELDS(
1576         ctf_integer_hex(void*, imagectx, imagectx)
1577         ctf_string(name, name)
1578         ctf_string(snap_name, snap_name)
1579         ctf_integer(char, read_only, read_only)
1580         ctf_string(is_protected_snap_name, is_protected_snap_name)
1581     )
1582 )
1583
1584 TRACEPOINT_EVENT(librbd, snap_is_protected_exit,
1585     TP_ARGS(
1586         int, retval,
1587         int, is_protected),
1588     TP_FIELDS(
1589         ctf_integer(int, retval, retval)
1590         ctf_integer(int, is_protected, is_protected)
1591     )
1592 )
1593
1594 TRACEPOINT_EVENT(librbd, snap_exists_enter,
1595     TP_ARGS(
1596         void*, imagectx,
1597         const char*, name,
1598         const char*, snap_name,
1599         char, read_only,
1600         const char*, snap_name_to_check),
1601     TP_FIELDS(
1602         ctf_integer_hex(void*, imagectx, imagectx)
1603         ctf_string(name, name)
1604         ctf_string(snap_name, snap_name)
1605         ctf_integer(char, read_only, read_only)
1606         ctf_string(snap_name_to_check, snap_name_to_check)
1607     )
1608 )
1609
1610 TRACEPOINT_EVENT(librbd, snap_exists_exit,
1611     TP_ARGS(
1612         int, retval,
1613         int, exists),
1614     TP_FIELDS(
1615         ctf_integer(int, retval, retval)
1616         ctf_integer(int, exists, exists)
1617     )
1618 )
1619
1620 TRACEPOINT_EVENT(librbd, snap_get_timestamp_enter,
1621     TP_ARGS(
1622         void*, imagectx,
1623         const char*, name),
1624     TP_FIELDS(
1625         ctf_integer_hex(void*, imagectx, imagectx)
1626         ctf_string(name, name)
1627     )    
1628 )
1629
1630 TRACEPOINT_EVENT(librbd, snap_get_timestamp_exit,
1631     TP_ARGS(
1632         int, retval),
1633         TP_FIELDS(
1634         ctf_integer(int, retval, retval)
1635     )
1636 )
1637
1638 TRACEPOINT_EVENT(librbd, snap_get_limit_enter,
1639     TP_ARGS(
1640         void*, imagectx,
1641         const char*, name),
1642     TP_FIELDS(
1643         ctf_integer_hex(void*, imagectx, imagectx)
1644         ctf_string(name, name)
1645     )
1646 )
1647
1648 TRACEPOINT_EVENT(librbd, snap_get_limit_exit,
1649     TP_ARGS(
1650         int, retval,
1651         uint64_t, limit),
1652     TP_FIELDS(
1653         ctf_integer(int, retval, retval)
1654         ctf_integer(uint64_t, limit, limit)
1655     )
1656 )
1657
1658 TRACEPOINT_EVENT(librbd, snap_set_limit_enter,
1659     TP_ARGS(
1660         void*,imagectx,
1661         const char*, name,
1662         const int, limit),
1663     TP_FIELDS(
1664         ctf_integer_hex(void*, imagectx, imagectx)
1665         ctf_string(name, name)
1666         ctf_integer(int, limit, limit)
1667     )
1668 )
1669
1670 TRACEPOINT_EVENT(librbd, snap_set_limit_exit,
1671     TP_ARGS(
1672         int, retval),
1673     TP_FIELDS(
1674         ctf_integer(int, retval, retval)
1675     )
1676 )
1677
1678 TRACEPOINT_EVENT(librbd, snap_set_enter,
1679     TP_ARGS(
1680         void*, imagectx,
1681         const char*, name,
1682         const char*, snap_name,
1683         char, read_only,
1684         const char*, set_snap_name),
1685     TP_FIELDS(
1686         ctf_integer_hex(void*, imagectx, imagectx)
1687         ctf_string(name, name)
1688         ctf_string(snap_name, snap_name)
1689         ctf_integer(char, read_only, read_only)
1690         ctf_string(set_snap_name, set_snap_name)
1691     )
1692 )
1693
1694 TRACEPOINT_EVENT(librbd, snap_set_exit,
1695     TP_ARGS(
1696         int, retval),
1697     TP_FIELDS(
1698         ctf_integer(int, retval, retval)
1699     )
1700 )
1701
1702 TRACEPOINT_EVENT(librbd, list_children_enter,
1703     TP_ARGS(
1704         void*, imagectx,
1705         const char*, name,
1706         const char*, snap_name,
1707         char, read_only),
1708     TP_FIELDS(
1709         ctf_integer_hex(void*, imagectx, imagectx)
1710         ctf_string(name, name)
1711         ctf_string(snap_name, snap_name)
1712         ctf_integer(char, read_only, read_only)
1713     )
1714 )
1715
1716 TRACEPOINT_EVENT(librbd, list_children_entry,
1717     TP_ARGS(
1718         const char*, pool,
1719         const char*, image),
1720     TP_FIELDS(
1721         ctf_string(pool, pool)
1722         ctf_string(image, image)
1723     )
1724 )
1725
1726 TRACEPOINT_EVENT(librbd, list_children_exit,
1727     TP_ARGS(
1728         ssize_t, retval),
1729     TP_FIELDS(
1730         ctf_integer(ssize_t, retval, retval)
1731     )
1732 )
1733
1734 TRACEPOINT_EVENT(librbd, list_lockers_enter,
1735     TP_ARGS(
1736         void*, imagectx,
1737         const char*, name,
1738         const char*, snap_name,
1739         char, read_only),
1740     TP_FIELDS(
1741         ctf_integer_hex(void*, imagectx, imagectx)
1742         ctf_string(name, name)
1743         ctf_string(snap_name, snap_name)
1744         ctf_integer(char, read_only, read_only)
1745     )
1746 )
1747
1748 TRACEPOINT_EVENT(librbd, list_lockers_entry,
1749     TP_ARGS(
1750         const char*, client,
1751         const char*, cookie,
1752         const char*, address),
1753     TP_FIELDS(
1754         ctf_string(client, client)
1755         ctf_string(cookie, cookie)
1756         ctf_string(address, address)
1757     )
1758 )
1759
1760 TRACEPOINT_EVENT(librbd, list_lockers_exit,
1761     TP_ARGS(
1762         ssize_t, retval),
1763     TP_FIELDS(
1764         ctf_integer(ssize_t, retval, retval)
1765     )
1766 )
1767
1768 TRACEPOINT_EVENT(librbd, lock_exclusive_enter,
1769     TP_ARGS(
1770         void*, imagectx,
1771         const char*, name,
1772         const char*, snap_name,
1773         char, read_only,
1774         const char*, cookie),
1775     TP_FIELDS(
1776         ctf_integer_hex(void*, imagectx, imagectx)
1777         ctf_string(name, name)
1778         ctf_string(snap_name, snap_name)
1779         ctf_integer(char, read_only, read_only)
1780         ceph_ctf_string(cookie, cookie)
1781     )
1782 )
1783
1784 TRACEPOINT_EVENT(librbd, lock_exclusive_exit,
1785     TP_ARGS(
1786         int, retval),
1787     TP_FIELDS(
1788         ctf_integer(int, retval, retval)
1789     )
1790 )
1791
1792 TRACEPOINT_EVENT(librbd, lock_shared_enter,
1793     TP_ARGS(
1794         void*, imagectx,
1795         const char*, name,
1796         const char*, snap_name,
1797         char, read_only,
1798         const char*, cookie,
1799         const char*, tag),
1800     TP_FIELDS(
1801         ctf_integer_hex(void*, imagectx, imagectx)
1802         ctf_string(name, name)
1803         ctf_string(snap_name, snap_name)
1804         ctf_integer(char, read_only, read_only)
1805         ceph_ctf_string(cookie, cookie)
1806         ceph_ctf_string(tag, tag)
1807     )
1808 )
1809
1810 TRACEPOINT_EVENT(librbd, lock_shared_exit,
1811     TP_ARGS(
1812         int, retval),
1813     TP_FIELDS(
1814         ctf_integer(int, retval, retval)
1815     )
1816 )
1817
1818 TRACEPOINT_EVENT(librbd, unlock_enter,
1819     TP_ARGS(
1820         void*, imagectx,
1821         const char*, name,
1822         const char*, snap_name,
1823         char, read_only,
1824         const char*, cookie),
1825     TP_FIELDS(
1826         ctf_integer_hex(void*, imagectx, imagectx)
1827         ctf_string(name, name)
1828         ctf_string(snap_name, snap_name)
1829         ctf_integer(char, read_only, read_only)
1830         ceph_ctf_string(cookie, cookie)
1831     )
1832 )
1833
1834 TRACEPOINT_EVENT(librbd, unlock_exit,
1835     TP_ARGS(
1836         int, retval),
1837     TP_FIELDS(
1838         ctf_integer(int, retval, retval)
1839     )
1840 )
1841
1842 TRACEPOINT_EVENT(librbd, break_lock_enter,
1843     TP_ARGS(
1844         void*, imagectx,
1845         const char*, name,
1846         const char*, snap_name,
1847         char, read_only,
1848         const char*, client,
1849         const char*, cookie),
1850     TP_FIELDS(
1851         ctf_integer_hex(void*, imagectx, imagectx)
1852         ctf_string(name, name)
1853         ctf_string(snap_name, snap_name)
1854         ctf_integer(char, read_only, read_only)
1855         ceph_ctf_string(client, client)
1856         ceph_ctf_string(cookie, cookie)
1857     )
1858 )
1859
1860 TRACEPOINT_EVENT(librbd, break_lock_exit,
1861     TP_ARGS(
1862         int, retval),
1863     TP_FIELDS(
1864         ctf_integer(int, retval, retval)
1865     )
1866 )
1867
1868 TRACEPOINT_EVENT(librbd, diff_iterate_enter,
1869     TP_ARGS(
1870         void*, imagectx,
1871         const char*, name,
1872         const char*, snap_name,
1873         char, read_only,
1874         const char*, from_snap_name,
1875         uint64_t, offset,
1876         uint64_t, length,
1877         char, include_parent,
1878         char, whole_object),
1879     TP_FIELDS(
1880         ctf_integer_hex(void*, imagectx, imagectx)
1881         ctf_string(name, name)
1882         ctf_string(snap_name, snap_name)
1883         ctf_integer(char, read_only, read_only)
1884         ctf_string(from_snap_name, from_snap_name)
1885         ctf_integer(uint64_t, offset, offset)
1886         ctf_integer(uint64_t, length, length)
1887         ctf_integer(char, include_parent, include_parent)
1888         ctf_integer(char, whole_object, whole_object)
1889     )
1890 )
1891
1892 TRACEPOINT_EVENT(librbd, diff_iterate_exit,
1893     TP_ARGS(
1894         int, retval),
1895     TP_FIELDS(
1896         ctf_integer(int, retval, retval)
1897     )
1898 )
1899
1900 TRACEPOINT_EVENT(librbd, get_parent_info_enter,
1901     TP_ARGS(
1902         void*, imagectx,
1903         const char*, name,
1904         const char*, snap_name,
1905         char, read_only),
1906     TP_FIELDS(
1907         ctf_integer_hex(void*, imagectx, imagectx)
1908         ctf_string(name, name)
1909         ctf_string(snap_name, snap_name)
1910         ctf_integer(char, read_only, read_only)
1911     )
1912 )
1913
1914 TRACEPOINT_EVENT(librbd, get_parent_info_exit,
1915     TP_ARGS(
1916         int, retval,
1917         const char*, parent_pool_name,
1918         const char*, parent_name,
1919         const char*, parent_id,
1920         const char*, parent_snap_name),
1921     TP_FIELDS(
1922         ctf_integer(int, retval, retval)
1923         ceph_ctf_string(parent_pool_name, parent_pool_name)
1924         ceph_ctf_string(parent_name, parent_name)
1925         ceph_ctf_string(parent_id, parent_id)
1926         ceph_ctf_string(parent_snap_name, parent_snap_name)
1927     )
1928 )
1929
1930 TRACEPOINT_EVENT(librbd, get_overlap_enter,
1931     TP_ARGS(
1932         void*, imagectx,
1933         const char*, name,
1934         const char*, snap_name,
1935         char, read_only),
1936     TP_FIELDS(
1937         ctf_integer_hex(void*, imagectx, imagectx)
1938         ctf_string(name, name)
1939         ctf_string(snap_name, snap_name)
1940         ctf_integer(char, read_only, read_only)
1941     )
1942 )
1943
1944 TRACEPOINT_EVENT(librbd, get_overlap_exit,
1945     TP_ARGS(
1946         int, retval,
1947         uint64_t, overlap),
1948     TP_FIELDS(
1949         ctf_integer(int, retval, retval)
1950         ctf_integer(uint64_t, overlap, overlap)
1951     )
1952 )
1953
1954 TRACEPOINT_EVENT(librbd, get_stripe_unit_enter,
1955     TP_ARGS(
1956         void*, imagectx,
1957         const char*, name,
1958         const char*, snap_name,
1959         char, read_only),
1960     TP_FIELDS(
1961         ctf_integer_hex(void*, imagectx, imagectx)
1962         ctf_string(name, name)
1963         ctf_string(snap_name, snap_name)
1964         ctf_integer(char, read_only, read_only)
1965     )
1966 )
1967
1968 TRACEPOINT_EVENT(librbd, get_stripe_unit_exit,
1969     TP_ARGS(
1970         int, retval,
1971         uint64_t, stripe_unit),
1972     TP_FIELDS(
1973         ctf_integer(int, retval, retval)
1974         ctf_integer(uint64_t, stripe_unit, stripe_unit)
1975     )
1976 )
1977
1978 TRACEPOINT_EVENT(librbd, get_stripe_count_enter,
1979     TP_ARGS(
1980         void*, imagectx,
1981         const char*, name,
1982         const char*, snap_name,
1983         char, read_only),
1984     TP_FIELDS(
1985         ctf_integer_hex(void*, imagectx, imagectx)
1986         ctf_string(name, name)
1987         ctf_string(snap_name, snap_name)
1988         ctf_integer(char, read_only, read_only)
1989     )
1990 )
1991
1992 TRACEPOINT_EVENT(librbd, get_stripe_count_exit,
1993     TP_ARGS(
1994         int, retval,
1995         uint64_t, stripe_count),
1996     TP_FIELDS(
1997         ctf_integer(int, retval, retval)
1998         ctf_integer(uint64_t, stripe_count, stripe_count)
1999     )
2000 )
2001
2002 TRACEPOINT_EVENT(librbd, get_create_timestamp_enter,
2003     TP_ARGS(
2004         void*, imagectx,
2005         const char*, name,
2006         char, read_only),
2007     TP_FIELDS(
2008         ctf_integer_hex(void*, imagectx, imagectx)
2009         ctf_string(name, name)
2010         ctf_integer(char, read_only, read_only)
2011     )
2012 )
2013
2014 TRACEPOINT_EVENT(librbd, get_create_timestamp_exit,
2015     TP_ARGS(
2016         int, retval,
2017         struct timespec*, timestamp),
2018     TP_FIELDS(
2019         ctf_integer(int, retval, retval)
2020         ctf_integer(uint64_t, timestamp, timestamp->tv_sec)
2021     )
2022 )
2023
2024 TRACEPOINT_EVENT(librbd, get_features_enter,
2025     TP_ARGS(
2026         void*, imagectx,
2027         const char*, name,
2028         const char*, snap_name,
2029         char, read_only),
2030     TP_FIELDS(
2031         ctf_integer_hex(void*, imagectx, imagectx)
2032         ctf_string(name, name)
2033         ctf_string(snap_name, snap_name)
2034         ctf_integer(char, read_only, read_only)
2035     )
2036 )
2037
2038 TRACEPOINT_EVENT(librbd, get_features_exit,
2039     TP_ARGS(
2040         int, retval,
2041         uint64_t, features),
2042     TP_FIELDS(
2043         ctf_integer(int, retval, retval)
2044         ctf_integer(uint64_t, features, features)
2045     )
2046 )
2047
2048 TRACEPOINT_EVENT(librbd, update_features_enter,
2049     TP_ARGS(
2050         void*, imagectx,
2051         uint64_t, features,
2052         char, enabled),
2053     TP_FIELDS(
2054         ctf_integer_hex(void*, imagectx, imagectx)
2055         ctf_integer(uint64_t, features, features)
2056         ctf_integer(char, enabled, enabled)
2057     )
2058 )
2059
2060 TRACEPOINT_EVENT(librbd, update_features_exit,
2061     TP_ARGS(
2062         int, retval),
2063     TP_FIELDS(
2064         ctf_integer(int, retval, retval)
2065     )
2066 )
2067
2068 TRACEPOINT_EVENT(librbd, get_size_enter,
2069     TP_ARGS(
2070         void*, imagectx,
2071         const char*, name,
2072         const char*, snap_name,
2073         char, read_only),
2074     TP_FIELDS(
2075         ctf_integer_hex(void*, imagectx, imagectx)
2076         ctf_string(name, name)
2077         ctf_string(snap_name, snap_name)
2078         ctf_integer(char, read_only, read_only)
2079     )
2080 )
2081
2082 TRACEPOINT_EVENT(librbd, get_size_exit,
2083     TP_ARGS(
2084         int, retval,
2085         uint64_t, size),
2086     TP_FIELDS(
2087         ctf_integer(int, retval, retval)
2088         ctf_integer(uint64_t, size, size)
2089     )
2090 )
2091
2092 TRACEPOINT_EVENT(librbd, get_old_format_enter,
2093     TP_ARGS(
2094         void*, imagectx,
2095         const char*, name,
2096         const char*, snap_name,
2097         char, read_only),
2098     TP_FIELDS(
2099         ctf_integer_hex(void*, imagectx, imagectx)
2100         ctf_string(name, name)
2101         ctf_string(snap_name, snap_name)
2102         ctf_integer(char, read_only, read_only)
2103     )
2104 )
2105
2106 TRACEPOINT_EVENT(librbd, get_old_format_exit,
2107     TP_ARGS(
2108         int, retval,
2109         uint64_t, old_format),
2110     TP_FIELDS(
2111         ctf_integer(int, retval, retval)
2112         ctf_integer(uint64_t, old_format, old_format)
2113     )
2114 )
2115
2116 TRACEPOINT_EVENT(librbd, get_flags_enter,
2117     TP_ARGS(
2118         void*, imagectx),
2119     TP_FIELDS(
2120       ctf_integer_hex(void*, imagectx, imagectx)
2121     )
2122 )
2123
2124 TRACEPOINT_EVENT(librbd, get_flags_exit,
2125     TP_ARGS(
2126         void*, imagectx,
2127         int, retval,
2128         uint64_t, flags),
2129     TP_FIELDS(
2130       ctf_integer_hex(void*, imagectx, imagectx)
2131       ctf_integer(int, retval, retval)
2132       ctf_integer(uint64_t, flags, flags)
2133     )
2134 )
2135
2136 TRACEPOINT_EVENT(librbd, set_image_notification_enter,
2137     TP_ARGS(
2138         void*, imagectx,
2139         int, fd,
2140         int, type),
2141     TP_FIELDS(
2142       ctf_integer_hex(void*, imagectx, imagectx)
2143       ctf_integer(int, fd, fd)
2144       ctf_integer(int, type, type)
2145     )
2146 )
2147
2148 TRACEPOINT_EVENT(librbd, set_image_notification_exit,
2149     TP_ARGS(
2150         void*, imagectx,
2151         int, retval),
2152     TP_FIELDS(
2153       ctf_integer_hex(void*, imagectx, imagectx)
2154       ctf_integer(int, retval, retval)
2155     )
2156 )
2157
2158 TRACEPOINT_EVENT(librbd, is_exclusive_lock_owner_enter,
2159     TP_ARGS(
2160         void*, imagectx),
2161     TP_FIELDS(
2162       ctf_integer_hex(void*, imagectx, imagectx)
2163     )
2164 )
2165
2166 TRACEPOINT_EVENT(librbd, is_exclusive_lock_owner_exit,
2167     TP_ARGS(
2168         void*, imagectx,
2169         int, retval,
2170         char, is_owner),
2171     TP_FIELDS(
2172       ctf_integer_hex(void*, imagectx, imagectx)
2173       ctf_integer(int, retval, retval)
2174       ctf_integer(char, is_owner, is_owner)
2175     )
2176 )
2177
2178 TRACEPOINT_EVENT(librbd, lock_acquire_enter,
2179     TP_ARGS(
2180         void*, imagectx,
2181         int, lock_mode),
2182     TP_FIELDS(
2183       ctf_integer_hex(void*, imagectx, imagectx)
2184       ctf_integer(int, lock_mode, lock_mode)
2185     )
2186 )
2187
2188 TRACEPOINT_EVENT(librbd, lock_acquire_exit,
2189     TP_ARGS(
2190         void*, imagectx,
2191         int, retval),
2192     TP_FIELDS(
2193       ctf_integer_hex(void*, imagectx, imagectx)
2194       ctf_integer(int, retval, retval)
2195     )
2196 )
2197
2198 TRACEPOINT_EVENT(librbd, lock_release_enter,
2199     TP_ARGS(
2200         void*, imagectx),
2201     TP_FIELDS(
2202       ctf_integer_hex(void*, imagectx, imagectx)
2203     )
2204 )
2205
2206 TRACEPOINT_EVENT(librbd, lock_release_exit,
2207     TP_ARGS(
2208         void*, imagectx,
2209         int, retval),
2210     TP_FIELDS(
2211       ctf_integer_hex(void*, imagectx, imagectx)
2212       ctf_integer(int, retval, retval)
2213     )
2214 )
2215
2216 TRACEPOINT_EVENT(librbd, lock_get_owners_enter,
2217     TP_ARGS(
2218         void*, imagectx),
2219     TP_FIELDS(
2220         ctf_integer_hex(void*, imagectx, imagectx)
2221     )
2222 )
2223
2224 TRACEPOINT_EVENT(librbd, lock_get_owners_exit,
2225     TP_ARGS(
2226         void*, imagectx,
2227         int, retval),
2228     TP_FIELDS(
2229         ctf_integer_hex(void*, imagectx, imagectx)
2230         ctf_integer(int, retval, retval)
2231     )
2232 )
2233
2234 TRACEPOINT_EVENT(librbd, lock_break_enter,
2235     TP_ARGS(
2236         void*, imagectx,
2237         int, lock_mode,
2238         const char*, lock_owner),
2239     TP_FIELDS(
2240         ctf_integer_hex(void*, imagectx, imagectx)
2241         ctf_integer(int, lock_mode, lock_mode)
2242         ctf_string(lock_owner, lock_owner)
2243     )
2244 )
2245
2246 TRACEPOINT_EVENT(librbd, lock_break_exit,
2247     TP_ARGS(
2248         void*, imagectx,
2249         int, retval),
2250     TP_FIELDS(
2251         ctf_integer_hex(void*, imagectx, imagectx)
2252         ctf_integer(int, retval, retval)
2253     )
2254 )
2255
2256 TRACEPOINT_EVENT(librbd, stat_enter,
2257     TP_ARGS(
2258         void*, imagectx,
2259         const char*, name,
2260         const char*, snap_name,
2261         char, read_only),
2262     TP_FIELDS(
2263         ctf_integer_hex(void*, imagectx, imagectx)
2264         ctf_string(name, name)
2265         ctf_string(snap_name, snap_name)
2266         ctf_integer(char, read_only, read_only)
2267     )
2268 )
2269
2270 TRACEPOINT_EVENT(librbd, stat_exit,
2271     TP_ARGS(
2272         int, retval,
2273         rbd_image_info_t*, info),
2274     TP_FIELDS(
2275         ctf_integer(int, retval, retval)
2276         ctf_integer(uint64_t, size, info->size)
2277         ctf_integer(uint64_t, obj_size, info->obj_size)
2278         ctf_integer(uint64_t, num_objs, info->num_objs)
2279         ctf_integer(int, order, info->order)
2280         ctf_array_text(char, block_name_prefix, info->block_name_prefix, RBD_MAX_BLOCK_NAME_SIZE)
2281         ctf_integer(int64_t, parent_pool, info->parent_pool)
2282         ctf_array_text(char, parent_name, info->parent_name, RBD_MAX_IMAGE_NAME_SIZE)
2283     )
2284 )
2285
2286 TRACEPOINT_EVENT(librbd, update_watch_enter,
2287     TP_ARGS(
2288         void*, imagectx,
2289         void*, watchctx),
2290     TP_FIELDS(
2291         ctf_integer_hex(void*, imagctx, imagectx)
2292         ctf_integer_hex(void*, watchctx, watchctx)
2293     )
2294 )
2295
2296 TRACEPOINT_EVENT(librbd, update_watch_exit,
2297     TP_ARGS(
2298         int, retval,
2299         uint64_t, handle),
2300     TP_FIELDS(
2301         ctf_integer(int, retval, retval)
2302         ctf_integer(uint64_t, handle, handle)
2303     )
2304 )
2305
2306 TRACEPOINT_EVENT(librbd, update_unwatch_enter,
2307     TP_ARGS(
2308         void*, imagectx,
2309         uint64_t, handle),
2310     TP_FIELDS(
2311         ctf_integer_hex(void*, imagctx, imagectx)
2312         ctf_integer(uint64_t, handle, handle)
2313     )
2314 )
2315
2316 TRACEPOINT_EVENT(librbd, update_unwatch_exit,
2317     TP_ARGS(
2318         int, retval),
2319     TP_FIELDS(
2320         ctf_integer(int, retval, retval)
2321     )
2322 )