+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0))
+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_add,
+
+ TP_PROTO(const struct inode *inode,
+ const struct btrfs_ordered_extent *ordered),
+
+ TP_ARGS(inode, ordered)
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_remove,
+
+ TP_PROTO(const struct inode *inode,
+ const struct btrfs_ordered_extent *ordered),
+
+ TP_ARGS(inode, ordered)
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_start,
+
+ TP_PROTO(const struct inode *inode,
+ const struct btrfs_ordered_extent *ordered),
+
+ TP_ARGS(inode, ordered)
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__ordered_extent, btrfs_ordered_extent_put,
+
+ TP_PROTO(const struct inode *inode,
+ const struct btrfs_ordered_extent *ordered),
+
+ TP_ARGS(inode, ordered)
+)
+
+LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__writepage,
+
+ TP_PROTO(const struct page *page, const struct inode *inode,
+ const struct writeback_control *wbc),
+
+ TP_ARGS(page, inode, wbc),
+
+ TP_FIELDS(
+ ctf_integer(ino_t, ino, inode->i_ino)
+ ctf_integer(pgoff_t, index, page->index)
+ ctf_integer(long, nr_to_write, wbc->nr_to_write)
+ ctf_integer(long, pages_skipped, wbc->pages_skipped)
+ ctf_integer(loff_t, range_start, wbc->range_start)
+ ctf_integer(loff_t, range_end, wbc->range_end)
+ ctf_integer(char, for_kupdate, wbc->for_kupdate)
+ ctf_integer(char, for_reclaim, wbc->for_reclaim)
+ ctf_integer(char, range_cyclic, wbc->range_cyclic)
+ ctf_integer(pgoff_t, writeback_index,
+ inode->i_mapping->writeback_index)
+ ctf_integer(u64, root_objectid,
+ BTRFS_I(inode)->root->root_key.objectid)
+ )
+)
+
+LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs__writepage,
+
+ __extent_writepage,
+
+ btrfs__extent_writepage,
+
+ TP_PROTO(const struct page *page, const struct inode *inode,
+ const struct writeback_control *wbc),
+
+ TP_ARGS(page, inode, wbc)
+)
+
+LTTNG_TRACEPOINT_EVENT(btrfs_writepage_end_io_hook,
+
+ TP_PROTO(const struct page *page, u64 start, u64 end, int uptodate),
+
+ TP_ARGS(page, start, end, uptodate),
+
+ TP_FIELDS(
+ ctf_integer(ino_t, ino, page->mapping->host->i_ino)
+ ctf_integer(pgoff_t, index, page->index)
+ ctf_integer(u64, start, start)
+ ctf_integer(u64, end, end)
+ ctf_integer(int, uptodate, uptodate)
+ ctf_integer(u64, root_objectid,
+ BTRFS_I(page->mapping->host)->root->root_key.objectid)
+ )
+)
+
+LTTNG_TRACEPOINT_EVENT(btrfs_sync_file,
+
+ TP_PROTO(const struct file *file, int datasync),
+
+ TP_ARGS(file, datasync),
+
+ TP_FIELDS(
+ ctf_integer(ino_t, ino, file->f_path.dentry->d_inode->i_ino)
+ ctf_integer(ino_t, parent, file->f_path.dentry->d_parent->d_inode->i_ino)
+ ctf_integer(int, datasync, datasync)
+ ctf_integer(u64, root_objectid,
+ BTRFS_I(file->f_path.dentry->d_inode)->root->root_key.objectid)
+ )
+)
+#else