Merge branch 'for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux
Pull btrfs updates from David Sterba: "The changes range through all types: cleanups, core chagnes, sanity checks, fixes, other user visible changes, detailed list below: - deprecated: user transaction ioctl - mount option ssd does not change allocation alignments - degraded read-write mount is allowed if all the raid profile constraints are met, now based on more accurate check - defrag: do not reset compression afterwards; the NOCOMPRESS flag can be now overriden by defrag - prep work for better extent reference tracking (related to the qgroup slowness with balance) - prep work for compression heuristics - memory allocation reductions (may help latencies on a loaded system) - better accounting for io waiting states - error handling improvements (removed BUGs) - added more sanity checks for shared refs - fix readdir vs pagefault deadlock under some circumstances - fix for 'no-hole' mode, certain combination of compressed and inline extents - send: fix emission of invalid clone operations - fixup file mode if setting acls fail - more fixes from fuzzing - oher cleanups" * 'for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (104 commits) btrfs: submit superblock io with REQ_META and REQ_PRIO btrfs: remove unnecessary memory barrier in btrfs_direct_IO btrfs: remove superfluous chunk_tree argument from btrfs_alloc_dev_extent btrfs: Remove chunk_objectid parameter of btrfs_alloc_dev_extent btrfs: pass fs_info to btrfs_del_root instead of tree_root Btrfs: add one more sanity check for shared ref type Btrfs: remove BUG_ON in __add_tree_block Btrfs: remove BUG() in add_data_reference Btrfs: remove BUG() in print_extent_item Btrfs: remove BUG() in btrfs_extent_inline_ref_size Btrfs: convert to use btrfs_get_extent_inline_ref_type Btrfs: add a helper to retrive extent inline ref type btrfs: scrub: simplify scrub worker initialization btrfs: scrub: clean up division in scrub_find_csum btrfs: scrub: clean up division in __scrub_mark_bitmap btrfs: scrub: use bool for flush_all_writes btrfs: preserve i_mode if __btrfs_set_acl() fails btrfs: Remove extraneous chunk_objectid variable btrfs: Remove chunk_objectid argument from btrfs_make_block_group btrfs: Remove extra parentheses from condition in copy_items() ...
This commit is contained in:
@@ -26,6 +26,7 @@ struct btrfs_work;
|
||||
struct __btrfs_workqueue;
|
||||
struct btrfs_qgroup_extent_record;
|
||||
struct btrfs_qgroup;
|
||||
struct prelim_ref;
|
||||
|
||||
#define show_ref_type(type) \
|
||||
__print_symbolic(type, \
|
||||
@@ -73,11 +74,11 @@ struct btrfs_qgroup;
|
||||
{ BTRFS_BLOCK_GROUP_RAID5, "RAID5"}, \
|
||||
{ BTRFS_BLOCK_GROUP_RAID6, "RAID6"}
|
||||
|
||||
#define BTRFS_UUID_SIZE 16
|
||||
#define TP_STRUCT__entry_fsid __array(u8, fsid, BTRFS_UUID_SIZE)
|
||||
#define BTRFS_FSID_SIZE 16
|
||||
#define TP_STRUCT__entry_fsid __array(u8, fsid, BTRFS_FSID_SIZE)
|
||||
|
||||
#define TP_fast_assign_fsid(fs_info) \
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_UUID_SIZE)
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_FSID_SIZE)
|
||||
|
||||
#define TP_STRUCT__entry_btrfs(args...) \
|
||||
TP_STRUCT__entry( \
|
||||
@@ -92,7 +93,7 @@ struct btrfs_qgroup;
|
||||
|
||||
TRACE_EVENT(btrfs_transaction_commit,
|
||||
|
||||
TP_PROTO(struct btrfs_root *root),
|
||||
TP_PROTO(const struct btrfs_root *root),
|
||||
|
||||
TP_ARGS(root),
|
||||
|
||||
@@ -113,7 +114,7 @@ TRACE_EVENT(btrfs_transaction_commit,
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__inode,
|
||||
|
||||
TP_PROTO(struct inode *inode),
|
||||
TP_PROTO(const struct inode *inode),
|
||||
|
||||
TP_ARGS(inode),
|
||||
|
||||
@@ -151,21 +152,21 @@ DECLARE_EVENT_CLASS(btrfs__inode,
|
||||
|
||||
DEFINE_EVENT(btrfs__inode, btrfs_inode_new,
|
||||
|
||||
TP_PROTO(struct inode *inode),
|
||||
TP_PROTO(const struct inode *inode),
|
||||
|
||||
TP_ARGS(inode)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__inode, btrfs_inode_request,
|
||||
|
||||
TP_PROTO(struct inode *inode),
|
||||
TP_PROTO(const struct inode *inode),
|
||||
|
||||
TP_ARGS(inode)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__inode, btrfs_inode_evict,
|
||||
|
||||
TP_PROTO(struct inode *inode),
|
||||
TP_PROTO(const struct inode *inode),
|
||||
|
||||
TP_ARGS(inode)
|
||||
);
|
||||
@@ -192,8 +193,8 @@ DEFINE_EVENT(btrfs__inode, btrfs_inode_evict,
|
||||
|
||||
TRACE_EVENT_CONDITION(btrfs_get_extent,
|
||||
|
||||
TP_PROTO(struct btrfs_root *root, struct btrfs_inode *inode,
|
||||
struct extent_map *map),
|
||||
TP_PROTO(const struct btrfs_root *root, const struct btrfs_inode *inode,
|
||||
const struct extent_map *map),
|
||||
|
||||
TP_ARGS(root, inode, map),
|
||||
|
||||
@@ -388,7 +389,8 @@ DEFINE_EVENT(
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__ordered_extent,
|
||||
|
||||
TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
|
||||
TP_PROTO(const struct inode *inode,
|
||||
const struct btrfs_ordered_extent *ordered),
|
||||
|
||||
TP_ARGS(inode, ordered),
|
||||
|
||||
@@ -440,36 +442,40 @@ DECLARE_EVENT_CLASS(btrfs__ordered_extent,
|
||||
|
||||
DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add,
|
||||
|
||||
TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
|
||||
TP_PROTO(const struct inode *inode,
|
||||
const struct btrfs_ordered_extent *ordered),
|
||||
|
||||
TP_ARGS(inode, ordered)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove,
|
||||
|
||||
TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
|
||||
TP_PROTO(const struct inode *inode,
|
||||
const struct btrfs_ordered_extent *ordered),
|
||||
|
||||
TP_ARGS(inode, ordered)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start,
|
||||
|
||||
TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
|
||||
TP_PROTO(const struct inode *inode,
|
||||
const struct btrfs_ordered_extent *ordered),
|
||||
|
||||
TP_ARGS(inode, ordered)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put,
|
||||
|
||||
TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered),
|
||||
TP_PROTO(const struct inode *inode,
|
||||
const struct btrfs_ordered_extent *ordered),
|
||||
|
||||
TP_ARGS(inode, ordered)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__writepage,
|
||||
|
||||
TP_PROTO(struct page *page, struct inode *inode,
|
||||
struct writeback_control *wbc),
|
||||
TP_PROTO(const struct page *page, const struct inode *inode,
|
||||
const struct writeback_control *wbc),
|
||||
|
||||
TP_ARGS(page, inode, wbc),
|
||||
|
||||
@@ -517,15 +523,15 @@ DECLARE_EVENT_CLASS(btrfs__writepage,
|
||||
|
||||
DEFINE_EVENT(btrfs__writepage, __extent_writepage,
|
||||
|
||||
TP_PROTO(struct page *page, struct inode *inode,
|
||||
struct writeback_control *wbc),
|
||||
TP_PROTO(const struct page *page, const struct inode *inode,
|
||||
const struct writeback_control *wbc),
|
||||
|
||||
TP_ARGS(page, inode, wbc)
|
||||
);
|
||||
|
||||
TRACE_EVENT(btrfs_writepage_end_io_hook,
|
||||
|
||||
TP_PROTO(struct page *page, u64 start, u64 end, int uptodate),
|
||||
TP_PROTO(const struct page *page, u64 start, u64 end, int uptodate),
|
||||
|
||||
TP_ARGS(page, start, end, uptodate),
|
||||
|
||||
@@ -558,7 +564,7 @@ TRACE_EVENT(btrfs_writepage_end_io_hook,
|
||||
|
||||
TRACE_EVENT(btrfs_sync_file,
|
||||
|
||||
TP_PROTO(struct file *file, int datasync),
|
||||
TP_PROTO(const struct file *file, int datasync),
|
||||
|
||||
TP_ARGS(file, datasync),
|
||||
|
||||
@@ -570,8 +576,8 @@ TRACE_EVENT(btrfs_sync_file,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
struct dentry *dentry = file->f_path.dentry;
|
||||
struct inode *inode = d_inode(dentry);
|
||||
const struct dentry *dentry = file->f_path.dentry;
|
||||
const struct inode *inode = d_inode(dentry);
|
||||
|
||||
TP_fast_assign_fsid(btrfs_sb(file->f_path.dentry->d_sb));
|
||||
__entry->ino = inode->i_ino;
|
||||
@@ -589,7 +595,7 @@ TRACE_EVENT(btrfs_sync_file,
|
||||
|
||||
TRACE_EVENT(btrfs_sync_fs,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, int wait),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, int wait),
|
||||
|
||||
TP_ARGS(fs_info, wait),
|
||||
|
||||
@@ -606,13 +612,13 @@ TRACE_EVENT(btrfs_sync_fs,
|
||||
|
||||
TRACE_EVENT(btrfs_add_block_group,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_block_group_cache *block_group, int create),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_block_group_cache *block_group, int create),
|
||||
|
||||
TP_ARGS(fs_info, block_group, create),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__array( u8, fsid, BTRFS_UUID_SIZE )
|
||||
__array( u8, fsid, BTRFS_FSID_SIZE )
|
||||
__field( u64, offset )
|
||||
__field( u64, size )
|
||||
__field( u64, flags )
|
||||
@@ -622,7 +628,7 @@ TRACE_EVENT(btrfs_add_block_group,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_UUID_SIZE);
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_FSID_SIZE);
|
||||
__entry->offset = block_group->key.objectid;
|
||||
__entry->size = block_group->key.offset;
|
||||
__entry->flags = block_group->flags;
|
||||
@@ -654,9 +660,9 @@ TRACE_EVENT(btrfs_add_block_group,
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs_delayed_tree_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_tree_ref *full_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_tree_ref *full_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, full_ref, action),
|
||||
@@ -697,9 +703,9 @@ DECLARE_EVENT_CLASS(btrfs_delayed_tree_ref,
|
||||
|
||||
DEFINE_EVENT(btrfs_delayed_tree_ref, add_delayed_tree_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_tree_ref *full_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_tree_ref *full_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, full_ref, action)
|
||||
@@ -707,9 +713,9 @@ DEFINE_EVENT(btrfs_delayed_tree_ref, add_delayed_tree_ref,
|
||||
|
||||
DEFINE_EVENT(btrfs_delayed_tree_ref, run_delayed_tree_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_tree_ref *full_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_tree_ref *full_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, full_ref, action)
|
||||
@@ -717,9 +723,9 @@ DEFINE_EVENT(btrfs_delayed_tree_ref, run_delayed_tree_ref,
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs_delayed_data_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_data_ref *full_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_data_ref *full_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, full_ref, action),
|
||||
@@ -764,9 +770,9 @@ DECLARE_EVENT_CLASS(btrfs_delayed_data_ref,
|
||||
|
||||
DEFINE_EVENT(btrfs_delayed_data_ref, add_delayed_data_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_data_ref *full_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_data_ref *full_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, full_ref, action)
|
||||
@@ -774,9 +780,9 @@ DEFINE_EVENT(btrfs_delayed_data_ref, add_delayed_data_ref,
|
||||
|
||||
DEFINE_EVENT(btrfs_delayed_data_ref, run_delayed_data_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_data_ref *full_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_data_ref *full_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, full_ref, action)
|
||||
@@ -784,9 +790,9 @@ DEFINE_EVENT(btrfs_delayed_data_ref, run_delayed_data_ref,
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs_delayed_ref_head,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_ref_head *head_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_ref_head *head_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, head_ref, action),
|
||||
@@ -814,9 +820,9 @@ DECLARE_EVENT_CLASS(btrfs_delayed_ref_head,
|
||||
|
||||
DEFINE_EVENT(btrfs_delayed_ref_head, add_delayed_ref_head,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_ref_head *head_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_ref_head *head_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, head_ref, action)
|
||||
@@ -824,9 +830,9 @@ DEFINE_EVENT(btrfs_delayed_ref_head, add_delayed_ref_head,
|
||||
|
||||
DEFINE_EVENT(btrfs_delayed_ref_head, run_delayed_ref_head,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_delayed_ref_node *ref,
|
||||
struct btrfs_delayed_ref_head *head_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_delayed_ref_node *ref,
|
||||
const struct btrfs_delayed_ref_head *head_ref,
|
||||
int action),
|
||||
|
||||
TP_ARGS(fs_info, ref, head_ref, action)
|
||||
@@ -846,8 +852,8 @@ DEFINE_EVENT(btrfs_delayed_ref_head, run_delayed_ref_head,
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__chunk,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, struct map_lookup *map,
|
||||
u64 offset, u64 size),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct map_lookup *map, u64 offset, u64 size),
|
||||
|
||||
TP_ARGS(fs_info, map, offset, size),
|
||||
|
||||
@@ -880,24 +886,24 @@ DECLARE_EVENT_CLASS(btrfs__chunk,
|
||||
|
||||
DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, struct map_lookup *map,
|
||||
u64 offset, u64 size),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct map_lookup *map, u64 offset, u64 size),
|
||||
|
||||
TP_ARGS(fs_info, map, offset, size)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, struct map_lookup *map,
|
||||
u64 offset, u64 size),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct map_lookup *map, u64 offset, u64 size),
|
||||
|
||||
TP_ARGS(fs_info, map, offset, size)
|
||||
);
|
||||
|
||||
TRACE_EVENT(btrfs_cow_block,
|
||||
|
||||
TP_PROTO(struct btrfs_root *root, struct extent_buffer *buf,
|
||||
struct extent_buffer *cow),
|
||||
TP_PROTO(const struct btrfs_root *root, const struct extent_buffer *buf,
|
||||
const struct extent_buffer *cow),
|
||||
|
||||
TP_ARGS(root, buf, cow),
|
||||
|
||||
@@ -931,7 +937,7 @@ TRACE_EVENT(btrfs_cow_block,
|
||||
|
||||
TRACE_EVENT(btrfs_space_reservation,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, char *type, u64 val,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, char *type, u64 val,
|
||||
u64 bytes, int reserve),
|
||||
|
||||
TP_ARGS(fs_info, type, val, bytes, reserve),
|
||||
@@ -963,13 +969,13 @@ TRACE_EVENT(btrfs_space_reservation,
|
||||
|
||||
TRACE_EVENT(btrfs_trigger_flush,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 flags, u64 bytes,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 flags, u64 bytes,
|
||||
int flush, char *reason),
|
||||
|
||||
TP_ARGS(fs_info, flags, bytes, flush, reason),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__array( u8, fsid, BTRFS_UUID_SIZE )
|
||||
__array( u8, fsid, BTRFS_FSID_SIZE )
|
||||
__field( u64, flags )
|
||||
__field( u64, bytes )
|
||||
__field( int, flush )
|
||||
@@ -977,7 +983,7 @@ TRACE_EVENT(btrfs_trigger_flush,
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_UUID_SIZE);
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_FSID_SIZE);
|
||||
__entry->flags = flags;
|
||||
__entry->bytes = bytes;
|
||||
__entry->flush = flush;
|
||||
@@ -1004,42 +1010,39 @@ TRACE_EVENT(btrfs_trigger_flush,
|
||||
|
||||
TRACE_EVENT(btrfs_flush_space,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 flags, u64 num_bytes,
|
||||
u64 orig_bytes, int state, int ret),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 flags, u64 num_bytes,
|
||||
int state, int ret),
|
||||
|
||||
TP_ARGS(fs_info, flags, num_bytes, orig_bytes, state, ret),
|
||||
TP_ARGS(fs_info, flags, num_bytes, state, ret),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__array( u8, fsid, BTRFS_UUID_SIZE )
|
||||
__array( u8, fsid, BTRFS_FSID_SIZE )
|
||||
__field( u64, flags )
|
||||
__field( u64, num_bytes )
|
||||
__field( u64, orig_bytes )
|
||||
__field( int, state )
|
||||
__field( int, ret )
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_UUID_SIZE);
|
||||
memcpy(__entry->fsid, fs_info->fsid, BTRFS_FSID_SIZE);
|
||||
__entry->flags = flags;
|
||||
__entry->num_bytes = num_bytes;
|
||||
__entry->orig_bytes = orig_bytes;
|
||||
__entry->state = state;
|
||||
__entry->ret = ret;
|
||||
),
|
||||
|
||||
TP_printk("%pU: state=%d(%s) flags=%llu(%s) num_bytes=%llu "
|
||||
"orig_bytes=%llu ret=%d", __entry->fsid, __entry->state,
|
||||
TP_printk("%pU: state=%d(%s) flags=%llu(%s) num_bytes=%llu ret=%d",
|
||||
__entry->fsid, __entry->state,
|
||||
show_flush_state(__entry->state),
|
||||
(unsigned long long)__entry->flags,
|
||||
__print_flags((unsigned long)__entry->flags, "|",
|
||||
BTRFS_GROUP_FLAGS),
|
||||
(unsigned long long)__entry->num_bytes,
|
||||
(unsigned long long)__entry->orig_bytes, __entry->ret)
|
||||
(unsigned long long)__entry->num_bytes, __entry->ret)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__reserved_extent,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
|
||||
|
||||
TP_ARGS(fs_info, start, len),
|
||||
|
||||
@@ -1061,22 +1064,22 @@ DECLARE_EVENT_CLASS(btrfs__reserved_extent,
|
||||
|
||||
DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
|
||||
|
||||
TP_ARGS(fs_info, start, len)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
|
||||
|
||||
TP_ARGS(fs_info, start, len)
|
||||
);
|
||||
|
||||
TRACE_EVENT(find_free_extent,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
|
||||
u64 data),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes,
|
||||
u64 empty_size, u64 data),
|
||||
|
||||
TP_ARGS(fs_info, num_bytes, empty_size, data),
|
||||
|
||||
@@ -1101,8 +1104,8 @@ TRACE_EVENT(find_free_extent,
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__reserve_extent,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_block_group_cache *block_group, u64 start,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_block_group_cache *block_group, u64 start,
|
||||
u64 len),
|
||||
|
||||
TP_ARGS(fs_info, block_group, start, len),
|
||||
@@ -1132,8 +1135,8 @@ DECLARE_EVENT_CLASS(btrfs__reserve_extent,
|
||||
|
||||
DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_block_group_cache *block_group, u64 start,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_block_group_cache *block_group, u64 start,
|
||||
u64 len),
|
||||
|
||||
TP_ARGS(fs_info, block_group, start, len)
|
||||
@@ -1141,8 +1144,8 @@ DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent,
|
||||
|
||||
DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_block_group_cache *block_group, u64 start,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_block_group_cache *block_group, u64 start,
|
||||
u64 len),
|
||||
|
||||
TP_ARGS(fs_info, block_group, start, len)
|
||||
@@ -1150,7 +1153,7 @@ DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
|
||||
|
||||
TRACE_EVENT(btrfs_find_cluster,
|
||||
|
||||
TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start,
|
||||
TP_PROTO(const struct btrfs_block_group_cache *block_group, u64 start,
|
||||
u64 bytes, u64 empty_size, u64 min_bytes),
|
||||
|
||||
TP_ARGS(block_group, start, bytes, empty_size, min_bytes),
|
||||
@@ -1183,7 +1186,7 @@ TRACE_EVENT(btrfs_find_cluster,
|
||||
|
||||
TRACE_EVENT(btrfs_failed_cluster_setup,
|
||||
|
||||
TP_PROTO(struct btrfs_block_group_cache *block_group),
|
||||
TP_PROTO(const struct btrfs_block_group_cache *block_group),
|
||||
|
||||
TP_ARGS(block_group),
|
||||
|
||||
@@ -1200,8 +1203,9 @@ TRACE_EVENT(btrfs_failed_cluster_setup,
|
||||
|
||||
TRACE_EVENT(btrfs_setup_cluster,
|
||||
|
||||
TP_PROTO(struct btrfs_block_group_cache *block_group,
|
||||
struct btrfs_free_cluster *cluster, u64 size, int bitmap),
|
||||
TP_PROTO(const struct btrfs_block_group_cache *block_group,
|
||||
const struct btrfs_free_cluster *cluster,
|
||||
u64 size, int bitmap),
|
||||
|
||||
TP_ARGS(block_group, cluster, size, bitmap),
|
||||
|
||||
@@ -1235,12 +1239,13 @@ TRACE_EVENT(btrfs_setup_cluster,
|
||||
struct extent_state;
|
||||
TRACE_EVENT(alloc_extent_state,
|
||||
|
||||
TP_PROTO(struct extent_state *state, gfp_t mask, unsigned long IP),
|
||||
TP_PROTO(const struct extent_state *state,
|
||||
gfp_t mask, unsigned long IP),
|
||||
|
||||
TP_ARGS(state, mask, IP),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(struct extent_state *, state)
|
||||
__field(const struct extent_state *, state)
|
||||
__field(gfp_t, mask)
|
||||
__field(unsigned long, ip)
|
||||
),
|
||||
@@ -1252,17 +1257,17 @@ TRACE_EVENT(alloc_extent_state,
|
||||
),
|
||||
|
||||
TP_printk("state=%p mask=%s caller=%pS", __entry->state,
|
||||
show_gfp_flags(__entry->mask), (void *)__entry->ip)
|
||||
show_gfp_flags(__entry->mask), (const void *)__entry->ip)
|
||||
);
|
||||
|
||||
TRACE_EVENT(free_extent_state,
|
||||
|
||||
TP_PROTO(struct extent_state *state, unsigned long IP),
|
||||
TP_PROTO(const struct extent_state *state, unsigned long IP),
|
||||
|
||||
TP_ARGS(state, IP),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(struct extent_state *, state)
|
||||
__field(const struct extent_state *, state)
|
||||
__field(unsigned long, ip)
|
||||
),
|
||||
|
||||
@@ -1272,22 +1277,22 @@ TRACE_EVENT(free_extent_state,
|
||||
),
|
||||
|
||||
TP_printk("state=%p caller=%pS", __entry->state,
|
||||
(void *)__entry->ip)
|
||||
(const void *)__entry->ip)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__work,
|
||||
|
||||
TP_PROTO(struct btrfs_work *work),
|
||||
TP_PROTO(const struct btrfs_work *work),
|
||||
|
||||
TP_ARGS(work),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( void *, work )
|
||||
__field( void *, wq )
|
||||
__field( void *, func )
|
||||
__field( void *, ordered_func )
|
||||
__field( void *, ordered_free )
|
||||
__field( void *, normal_work )
|
||||
__field( const void *, work )
|
||||
__field( const void *, wq )
|
||||
__field( const void *, func )
|
||||
__field( const void *, ordered_func )
|
||||
__field( const void *, ordered_free )
|
||||
__field( const void *, normal_work )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(btrfs_work_owner(work),
|
||||
@@ -1312,12 +1317,12 @@ DECLARE_EVENT_CLASS(btrfs__work,
|
||||
*/
|
||||
DECLARE_EVENT_CLASS(btrfs__work__done,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, void *wtag),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, const void *wtag),
|
||||
|
||||
TP_ARGS(fs_info, wtag),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( void *, wtag )
|
||||
__field( const void *, wtag )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(fs_info,
|
||||
@@ -1329,40 +1334,41 @@ DECLARE_EVENT_CLASS(btrfs__work__done,
|
||||
|
||||
DEFINE_EVENT(btrfs__work, btrfs_work_queued,
|
||||
|
||||
TP_PROTO(struct btrfs_work *work),
|
||||
TP_PROTO(const struct btrfs_work *work),
|
||||
|
||||
TP_ARGS(work)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__work, btrfs_work_sched,
|
||||
|
||||
TP_PROTO(struct btrfs_work *work),
|
||||
TP_PROTO(const struct btrfs_work *work),
|
||||
|
||||
TP_ARGS(work)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__work__done, btrfs_all_work_done,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, void *wtag),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, const void *wtag),
|
||||
|
||||
TP_ARGS(fs_info, wtag)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__work, btrfs_ordered_sched,
|
||||
|
||||
TP_PROTO(struct btrfs_work *work),
|
||||
TP_PROTO(const struct btrfs_work *work),
|
||||
|
||||
TP_ARGS(work)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__workqueue,
|
||||
|
||||
TP_PROTO(struct __btrfs_workqueue *wq, const char *name, int high),
|
||||
TP_PROTO(const struct __btrfs_workqueue *wq,
|
||||
const char *name, int high),
|
||||
|
||||
TP_ARGS(wq, name, high),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( void *, wq )
|
||||
__field( const void *, wq )
|
||||
__string( name, name )
|
||||
__field( int , high )
|
||||
),
|
||||
@@ -1381,19 +1387,20 @@ DECLARE_EVENT_CLASS(btrfs__workqueue,
|
||||
|
||||
DEFINE_EVENT(btrfs__workqueue, btrfs_workqueue_alloc,
|
||||
|
||||
TP_PROTO(struct __btrfs_workqueue *wq, const char *name, int high),
|
||||
TP_PROTO(const struct __btrfs_workqueue *wq,
|
||||
const char *name, int high),
|
||||
|
||||
TP_ARGS(wq, name, high)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__workqueue_done,
|
||||
|
||||
TP_PROTO(struct __btrfs_workqueue *wq),
|
||||
TP_PROTO(const struct __btrfs_workqueue *wq),
|
||||
|
||||
TP_ARGS(wq),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( void *, wq )
|
||||
__field( const void *, wq )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(btrfs_workqueue_owner(wq),
|
||||
@@ -1405,7 +1412,7 @@ DECLARE_EVENT_CLASS(btrfs__workqueue_done,
|
||||
|
||||
DEFINE_EVENT(btrfs__workqueue_done, btrfs_workqueue_destroy,
|
||||
|
||||
TP_PROTO(struct __btrfs_workqueue *wq),
|
||||
TP_PROTO(const struct __btrfs_workqueue *wq),
|
||||
|
||||
TP_ARGS(wq)
|
||||
);
|
||||
@@ -1417,7 +1424,8 @@ DEFINE_EVENT(btrfs__workqueue_done, btrfs_workqueue_destroy,
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__qgroup_rsv_data,
|
||||
|
||||
TP_PROTO(struct inode *inode, u64 start, u64 len, u64 reserved, int op),
|
||||
TP_PROTO(const struct inode *inode, u64 start, u64 len,
|
||||
u64 reserved, int op),
|
||||
|
||||
TP_ARGS(inode, start, len, reserved, op),
|
||||
|
||||
@@ -1449,21 +1457,24 @@ DECLARE_EVENT_CLASS(btrfs__qgroup_rsv_data,
|
||||
|
||||
DEFINE_EVENT(btrfs__qgroup_rsv_data, btrfs_qgroup_reserve_data,
|
||||
|
||||
TP_PROTO(struct inode *inode, u64 start, u64 len, u64 reserved, int op),
|
||||
TP_PROTO(const struct inode *inode, u64 start, u64 len,
|
||||
u64 reserved, int op),
|
||||
|
||||
TP_ARGS(inode, start, len, reserved, op)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__qgroup_rsv_data, btrfs_qgroup_release_data,
|
||||
|
||||
TP_PROTO(struct inode *inode, u64 start, u64 len, u64 reserved, int op),
|
||||
TP_PROTO(const struct inode *inode, u64 start, u64 len,
|
||||
u64 reserved, int op),
|
||||
|
||||
TP_ARGS(inode, start, len, reserved, op)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__qgroup_delayed_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 ref_root, u64 reserved),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
u64 ref_root, u64 reserved),
|
||||
|
||||
TP_ARGS(fs_info, ref_root, reserved),
|
||||
|
||||
@@ -1483,14 +1494,15 @@ DECLARE_EVENT_CLASS(btrfs__qgroup_delayed_ref,
|
||||
|
||||
DEFINE_EVENT(btrfs__qgroup_delayed_ref, btrfs_qgroup_free_delayed_ref,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 ref_root, u64 reserved),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
u64 ref_root, u64 reserved),
|
||||
|
||||
TP_ARGS(fs_info, ref_root, reserved)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs_qgroup_extent,
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_qgroup_extent_record *rec),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_qgroup_extent_record *rec),
|
||||
|
||||
TP_ARGS(fs_info, rec),
|
||||
|
||||
@@ -1511,23 +1523,23 @@ DECLARE_EVENT_CLASS(btrfs_qgroup_extent,
|
||||
|
||||
DEFINE_EVENT(btrfs_qgroup_extent, btrfs_qgroup_account_extents,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_qgroup_extent_record *rec),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_qgroup_extent_record *rec),
|
||||
|
||||
TP_ARGS(fs_info, rec)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs_qgroup_extent, btrfs_qgroup_trace_extent,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info,
|
||||
struct btrfs_qgroup_extent_record *rec),
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct btrfs_qgroup_extent_record *rec),
|
||||
|
||||
TP_ARGS(fs_info, rec)
|
||||
);
|
||||
|
||||
TRACE_EVENT(btrfs_qgroup_account_extent,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 bytenr,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 bytenr,
|
||||
u64 num_bytes, u64 nr_old_roots, u64 nr_new_roots),
|
||||
|
||||
TP_ARGS(fs_info, bytenr, num_bytes, nr_old_roots, nr_new_roots),
|
||||
@@ -1556,7 +1568,7 @@ TRACE_EVENT(btrfs_qgroup_account_extent,
|
||||
|
||||
TRACE_EVENT(qgroup_update_counters,
|
||||
|
||||
TP_PROTO(struct btrfs_fs_info *fs_info, u64 qgid,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info, u64 qgid,
|
||||
u64 cur_old_count, u64 cur_new_count),
|
||||
|
||||
TP_ARGS(fs_info, qgid, cur_old_count, cur_new_count),
|
||||
@@ -1622,6 +1634,63 @@ TRACE_EVENT(qgroup_meta_reserve,
|
||||
show_root_type(__entry->refroot), __entry->diff)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(btrfs__prelim_ref,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct prelim_ref *oldref,
|
||||
const struct prelim_ref *newref, u64 tree_size),
|
||||
TP_ARGS(fs_info, newref, oldref, tree_size),
|
||||
|
||||
TP_STRUCT__entry_btrfs(
|
||||
__field( u64, root_id )
|
||||
__field( u64, objectid )
|
||||
__field( u8, type )
|
||||
__field( u64, offset )
|
||||
__field( int, level )
|
||||
__field( int, old_count )
|
||||
__field( u64, parent )
|
||||
__field( u64, bytenr )
|
||||
__field( int, mod_count )
|
||||
__field( u64, tree_size )
|
||||
),
|
||||
|
||||
TP_fast_assign_btrfs(fs_info,
|
||||
__entry->root_id = oldref->root_id;
|
||||
__entry->objectid = oldref->key_for_search.objectid;
|
||||
__entry->type = oldref->key_for_search.type;
|
||||
__entry->offset = oldref->key_for_search.offset;
|
||||
__entry->level = oldref->level;
|
||||
__entry->old_count = oldref->count;
|
||||
__entry->parent = oldref->parent;
|
||||
__entry->bytenr = oldref->wanted_disk_byte;
|
||||
__entry->mod_count = newref ? newref->count : 0;
|
||||
__entry->tree_size = tree_size;
|
||||
),
|
||||
|
||||
TP_printk_btrfs("root_id=%llu key=[%llu,%u,%llu] level=%d count=[%d+%d=%d] parent=%llu wanted_disk_byte=%llu nodes=%llu",
|
||||
(unsigned long long)__entry->root_id,
|
||||
(unsigned long long)__entry->objectid, __entry->type,
|
||||
(unsigned long long)__entry->offset, __entry->level,
|
||||
__entry->old_count, __entry->mod_count,
|
||||
__entry->old_count + __entry->mod_count,
|
||||
(unsigned long long)__entry->parent,
|
||||
(unsigned long long)__entry->bytenr,
|
||||
(unsigned long long)__entry->tree_size)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__prelim_ref, btrfs_prelim_ref_merge,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct prelim_ref *oldref,
|
||||
const struct prelim_ref *newref, u64 tree_size),
|
||||
TP_ARGS(fs_info, oldref, newref, tree_size)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(btrfs__prelim_ref, btrfs_prelim_ref_insert,
|
||||
TP_PROTO(const struct btrfs_fs_info *fs_info,
|
||||
const struct prelim_ref *oldref,
|
||||
const struct prelim_ref *newref, u64 tree_size),
|
||||
TP_ARGS(fs_info, oldref, newref, tree_size)
|
||||
);
|
||||
|
||||
#endif /* _TRACE_BTRFS_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
|
Reference in New Issue
Block a user