Merge tag 'gfs2-4.15.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2...
[muen/linux.git] / fs / gfs2 / trace_gfs2.h
index 2f159265693b802c2bebfe3f2784ccf26bc23aff..f67a709589d3afd874de06fde79f92e982d953ce 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/gfs2_ondisk.h>
 #include <linux/writeback.h>
 #include <linux/ktime.h>
+#include <linux/iomap.h>
 #include "incore.h"
 #include "glock.h"
 #include "rgrp.h"
@@ -470,6 +471,70 @@ TRACE_EVENT(gfs2_bmap,
                  __entry->errno)
 );
 
+TRACE_EVENT(gfs2_iomap_start,
+
+       TP_PROTO(const struct gfs2_inode *ip, loff_t pos, ssize_t length,
+                u16 flags),
+
+       TP_ARGS(ip, pos, length, flags),
+
+       TP_STRUCT__entry(
+               __field(        dev_t,  dev                     )
+               __field(        u64,    inum                    )
+               __field(        loff_t, pos                     )
+               __field(        ssize_t, length                 )
+               __field(        u16,    flags                   )
+       ),
+
+       TP_fast_assign(
+               __entry->dev            = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+               __entry->inum           = ip->i_no_addr;
+               __entry->pos            = pos;
+               __entry->length         = length;
+               __entry->flags          = flags;
+       ),
+
+       TP_printk("%u,%u bmap %llu iomap start %llu/%lu flags:%08x",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 (unsigned long long)__entry->inum,
+                 (unsigned long long)__entry->pos,
+                 (unsigned long)__entry->length, (u16)__entry->flags)
+);
+
+TRACE_EVENT(gfs2_iomap_end,
+
+       TP_PROTO(const struct gfs2_inode *ip, struct iomap *iomap, int ret),
+
+       TP_ARGS(ip, iomap, ret),
+
+       TP_STRUCT__entry(
+               __field(        dev_t,  dev                     )
+               __field(        u64,    inum                    )
+               __field(        loff_t, offset                  )
+               __field(        ssize_t, length                 )
+               __field(        u16,    flags                   )
+               __field(        u16,    type                    )
+               __field(        int,    ret                     )
+       ),
+
+       TP_fast_assign(
+               __entry->dev            = ip->i_gl->gl_name.ln_sbd->sd_vfs->s_dev;
+               __entry->inum           = ip->i_no_addr;
+               __entry->offset         = iomap->offset;
+               __entry->length         = iomap->length;
+               __entry->flags          = iomap->flags;
+               __entry->type           = iomap->type;
+               __entry->ret            = ret;
+       ),
+
+       TP_printk("%u,%u bmap %llu iomap end %llu/%lu ty:%d flags:%08x rc:%d",
+                 MAJOR(__entry->dev), MINOR(__entry->dev),
+                 (unsigned long long)__entry->inum,
+                 (unsigned long long)__entry->offset,
+                 (unsigned long)__entry->length, (u16)__entry->type,
+                 (u16)__entry->flags, __entry->ret)
+);
+
 /* Keep track of blocks as they are allocated/freed */
 TRACE_EVENT(gfs2_block_alloc,