|
@@ -627,16 +627,19 @@ DECLARE_EVENT_CLASS(xfs_namespace_class,
|
|
|
TP_STRUCT__entry(
|
|
|
__field(dev_t, dev)
|
|
|
__field(xfs_ino_t, dp_ino)
|
|
|
+ __field(int, namelen)
|
|
|
__dynamic_array(char, name, name->len)
|
|
|
),
|
|
|
TP_fast_assign(
|
|
|
__entry->dev = VFS_I(dp)->i_sb->s_dev;
|
|
|
__entry->dp_ino = dp->i_ino;
|
|
|
+ __entry->namelen = name->len;
|
|
|
memcpy(__get_str(name), name->name, name->len);
|
|
|
),
|
|
|
- TP_printk("dev %d:%d dp ino 0x%llx name %s",
|
|
|
+ TP_printk("dev %d:%d dp ino 0x%llx name %.*s",
|
|
|
MAJOR(__entry->dev), MINOR(__entry->dev),
|
|
|
__entry->dp_ino,
|
|
|
+ __entry->namelen,
|
|
|
__get_str(name))
|
|
|
)
|
|
|
|
|
@@ -658,6 +661,8 @@ TRACE_EVENT(xfs_rename,
|
|
|
__field(dev_t, dev)
|
|
|
__field(xfs_ino_t, src_dp_ino)
|
|
|
__field(xfs_ino_t, target_dp_ino)
|
|
|
+ __field(int, src_namelen)
|
|
|
+ __field(int, target_namelen)
|
|
|
__dynamic_array(char, src_name, src_name->len)
|
|
|
__dynamic_array(char, target_name, target_name->len)
|
|
|
),
|
|
@@ -665,15 +670,20 @@ TRACE_EVENT(xfs_rename,
|
|
|
__entry->dev = VFS_I(src_dp)->i_sb->s_dev;
|
|
|
__entry->src_dp_ino = src_dp->i_ino;
|
|
|
__entry->target_dp_ino = target_dp->i_ino;
|
|
|
+ __entry->src_namelen = src_name->len;
|
|
|
+ __entry->target_namelen = target_name->len;
|
|
|
memcpy(__get_str(src_name), src_name->name, src_name->len);
|
|
|
- memcpy(__get_str(target_name), target_name->name, target_name->len);
|
|
|
+ memcpy(__get_str(target_name), target_name->name,
|
|
|
+ target_name->len);
|
|
|
),
|
|
|
TP_printk("dev %d:%d src dp ino 0x%llx target dp ino 0x%llx"
|
|
|
- " src name %s target name %s",
|
|
|
+ " src name %.*s target name %.*s",
|
|
|
MAJOR(__entry->dev), MINOR(__entry->dev),
|
|
|
__entry->src_dp_ino,
|
|
|
__entry->target_dp_ino,
|
|
|
+ __entry->src_namelen,
|
|
|
__get_str(src_name),
|
|
|
+ __entry->target_namelen,
|
|
|
__get_str(target_name))
|
|
|
)
|
|
|
|
|
@@ -1408,7 +1418,7 @@ DEFINE_ALLOC_EVENT(xfs_alloc_vextent_noagbp);
|
|
|
DEFINE_ALLOC_EVENT(xfs_alloc_vextent_loopfailed);
|
|
|
DEFINE_ALLOC_EVENT(xfs_alloc_vextent_allfailed);
|
|
|
|
|
|
-DECLARE_EVENT_CLASS(xfs_dir2_class,
|
|
|
+DECLARE_EVENT_CLASS(xfs_da_class,
|
|
|
TP_PROTO(struct xfs_da_args *args),
|
|
|
TP_ARGS(args),
|
|
|
TP_STRUCT__entry(
|
|
@@ -1443,7 +1453,7 @@ DECLARE_EVENT_CLASS(xfs_dir2_class,
|
|
|
)
|
|
|
|
|
|
#define DEFINE_DIR2_EVENT(name) \
|
|
|
-DEFINE_EVENT(xfs_dir2_class, name, \
|
|
|
+DEFINE_EVENT(xfs_da_class, name, \
|
|
|
TP_PROTO(struct xfs_da_args *args), \
|
|
|
TP_ARGS(args))
|
|
|
DEFINE_DIR2_EVENT(xfs_dir2_sf_addname);
|
|
@@ -1472,6 +1482,64 @@ DEFINE_DIR2_EVENT(xfs_dir2_node_replace);
|
|
|
DEFINE_DIR2_EVENT(xfs_dir2_node_removename);
|
|
|
DEFINE_DIR2_EVENT(xfs_dir2_node_to_leaf);
|
|
|
|
|
|
+#define DEFINE_ATTR_EVENT(name) \
|
|
|
+DEFINE_EVENT(xfs_da_class, name, \
|
|
|
+ TP_PROTO(struct xfs_da_args *args), \
|
|
|
+ TP_ARGS(args))
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_sf_add);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_sf_addname);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_sf_create);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_sf_lookup);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_sf_remove);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_sf_removename);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_sf_to_leaf);
|
|
|
+
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_add);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_add_old);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_add_new);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_addname);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_create);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_lookup);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_replace);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_removename);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_split);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_split_before);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_split_after);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_clearflag);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_setflag);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_flipflags);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_to_sf);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_to_node);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_rebalance);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_leaf_unbalance);
|
|
|
+
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_node_addname);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_node_lookup);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_node_replace);
|
|
|
+DEFINE_ATTR_EVENT(xfs_attr_node_removename);
|
|
|
+
|
|
|
+#define DEFINE_DA_EVENT(name) \
|
|
|
+DEFINE_EVENT(xfs_da_class, name, \
|
|
|
+ TP_PROTO(struct xfs_da_args *args), \
|
|
|
+ TP_ARGS(args))
|
|
|
+DEFINE_DA_EVENT(xfs_da_split);
|
|
|
+DEFINE_DA_EVENT(xfs_da_join);
|
|
|
+DEFINE_DA_EVENT(xfs_da_link_before);
|
|
|
+DEFINE_DA_EVENT(xfs_da_link_after);
|
|
|
+DEFINE_DA_EVENT(xfs_da_unlink_back);
|
|
|
+DEFINE_DA_EVENT(xfs_da_unlink_forward);
|
|
|
+DEFINE_DA_EVENT(xfs_da_root_split);
|
|
|
+DEFINE_DA_EVENT(xfs_da_root_join);
|
|
|
+DEFINE_DA_EVENT(xfs_da_node_add);
|
|
|
+DEFINE_DA_EVENT(xfs_da_node_create);
|
|
|
+DEFINE_DA_EVENT(xfs_da_node_split);
|
|
|
+DEFINE_DA_EVENT(xfs_da_node_remove);
|
|
|
+DEFINE_DA_EVENT(xfs_da_node_rebalance);
|
|
|
+DEFINE_DA_EVENT(xfs_da_node_unbalance);
|
|
|
+DEFINE_DA_EVENT(xfs_da_swap_lastblock);
|
|
|
+DEFINE_DA_EVENT(xfs_da_grow_inode);
|
|
|
+DEFINE_DA_EVENT(xfs_da_shrink_inode);
|
|
|
+
|
|
|
DECLARE_EVENT_CLASS(xfs_dir2_space_class,
|
|
|
TP_PROTO(struct xfs_da_args *args, int idx),
|
|
|
TP_ARGS(args, idx),
|