@@ -104,6 +104,8 @@ static int btrfs_iomap_begin(struct inode *inode, loff_t pos,
u64 srcblk = 0;
loff_t diff;
+ trace_btrfs_iomap_begin(inode, pos, length, flags);
+
em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, pos, length, 0);
iomap->type = IOMAP_MAPPED;
@@ -164,6 +166,7 @@ static int btrfs_iomap_end(struct inode *inode, loff_t pos,
{
struct btrfs_iomap *bi = iomap->private;
u64 wend;
+ trace_btrfs_iomap_end(inode, pos, length, written, flags);
if (!bi)
return 0;
@@ -1850,6 +1850,62 @@ DEFINE_EVENT(btrfs__block_group, btrfs_skip_unused_block_group,
TP_ARGS(bg_cache)
);
+TRACE_EVENT(btrfs_iomap_begin,
+
+ TP_PROTO(const struct inode *inode, loff_t pos, loff_t length, int flags),
+
+ TP_ARGS(inode, pos, length, flags),
+
+ TP_STRUCT__entry_btrfs(
+ __field( u64, ino )
+ __field( u64, pos )
+ __field( u64, length )
+ __field( int, flags )
+ ),
+
+ TP_fast_assign_btrfs(btrfs_sb(inode->i_sb),
+ __entry->ino = btrfs_ino(BTRFS_I(inode));
+ __entry->pos = pos;
+ __entry->length = length;
+ __entry->flags = flags;
+ ),
+
+ TP_printk_btrfs("ino=%llu pos=%llu len=%llu flags=0x%x",
+ __entry->ino,
+ __entry->pos,
+ __entry->length,
+ __entry->flags)
+);
+
+TRACE_EVENT(btrfs_iomap_end,
+
+ TP_PROTO(const struct inode *inode, loff_t pos, loff_t length, loff_t written, int flags),
+
+ TP_ARGS(inode, pos, length, written, flags),
+
+ TP_STRUCT__entry_btrfs(
+ __field( u64, ino )
+ __field( u64, pos )
+ __field( u64, length )
+ __field( u64, written )
+ __field( int, flags )
+ ),
+
+ TP_fast_assign_btrfs(btrfs_sb(inode->i_sb),
+ __entry->ino = btrfs_ino(BTRFS_I(inode));
+ __entry->pos = pos;
+ __entry->length = length;
+ __entry->written = written;
+ __entry->flags = flags;
+ ),
+
+ TP_printk_btrfs("ino=%llu pos=%llu len=%llu written=%llu flags=0x%x",
+ __entry->ino,
+ __entry->pos,
+ __entry->length,
+ __entry->written,
+ __entry->flags)
+);
#endif /* _TRACE_BTRFS_H */
/* This part must be outside protection */