*
  * NOTE: none of these tracepoints shall be considered a stable kernel ABI
  * as they can change at any time.
+ *
+ * Current conventions for printing numbers measuring specific units:
+ *
+ * offset: byte offset into a subcomponent of a file operation
+ * pos: file offset, in bytes
+ * length: length of a file operation, in bytes
+ * ino: inode number
+ *
+ * Numbers describing space allocations should be formatted in hexadecimal.
  */
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM iomap
 DEFINE_READPAGE_EVENT(iomap_readahead);
 
 DECLARE_EVENT_CLASS(iomap_range_class,
-       TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),
+       TP_PROTO(struct inode *inode, loff_t off, u64 len),
        TP_ARGS(inode, off, len),
        TP_STRUCT__entry(
                __field(dev_t, dev)
                __field(u64, ino)
                __field(loff_t, size)
-               __field(unsigned long, offset)
-               __field(unsigned int, length)
+               __field(loff_t, offset)
+               __field(u64, length)
        ),
        TP_fast_assign(
                __entry->dev = inode->i_sb->s_dev;
                __entry->offset = off;
                __entry->length = len;
        ),
-       TP_printk("dev %d:%d ino 0x%llx size 0x%llx offset %lx "
-                 "length %x",
+       TP_printk("dev %d:%d ino 0x%llx size 0x%llx offset 0x%llx length 0x%llx",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  __entry->ino,
                  __entry->size,
 
 #define DEFINE_RANGE_EVENT(name)               \
 DEFINE_EVENT(iomap_range_class, name,  \
-       TP_PROTO(struct inode *inode, unsigned long off, unsigned int len),\
+       TP_PROTO(struct inode *inode, loff_t off, u64 len),\
        TP_ARGS(inode, off, len))
 DEFINE_RANGE_EVENT(iomap_writepage);
 DEFINE_RANGE_EVENT(iomap_releasepage);
                __entry->flags = iomap->flags;
                __entry->bdev = iomap->bdev ? iomap->bdev->bd_dev : 0;
        ),
-       TP_printk("dev %d:%d ino 0x%llx bdev %d:%d addr %lld offset %lld "
-                 "length %llu type %s flags %s",
+       TP_printk("dev %d:%d ino 0x%llx bdev %d:%d addr 0x%llx offset 0x%llx "
+                 "length 0x%llx type %s flags %s",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                  __entry->ino,
                  MAJOR(__entry->bdev), MINOR(__entry->bdev),
                __field(dev_t, dev)
                __field(u64, ino)
                __field(loff_t, pos)
-               __field(loff_t, length)
+               __field(u64, length)
                __field(unsigned int, flags)
                __field(const void *, ops)
                __field(unsigned long, caller)
                __entry->ops = ops;
                __entry->caller = caller;
        ),
-       TP_printk("dev %d:%d ino 0x%llx pos %lld length %lld flags %s (0x%x) ops %ps caller %pS",
+       TP_printk("dev %d:%d ino 0x%llx pos 0x%llx length 0x%llx flags %s (0x%x) ops %ps caller %pS",
                  MAJOR(__entry->dev), MINOR(__entry->dev),
                   __entry->ino,
                   __entry->pos,