btrfs: tracepoints: add trace event for btrfs_record_new_subvolume()

btrfs_record_new_subvolume() is an important operation that affects
inode logging and is called during subvolume creation. Add a trace event
for it to help debug issues.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Filipe Manana
2026-05-11 16:13:18 +01:00
parent e144303240
commit 4f065ebdf8
2 changed files with 27 additions and 0 deletions

View File

@@ -8024,6 +8024,8 @@ void btrfs_record_snapshot_destroy(struct btrfs_trans_handle *trans,
void btrfs_record_new_subvolume(const struct btrfs_trans_handle *trans,
struct btrfs_inode *dir)
{
trace_btrfs_record_new_subvolume(trans, dir);
mutex_lock(&dir->log_mutex);
dir->last_unlink_trans = trans->transid;
mutex_unlock(&dir->log_mutex);

View File

@@ -1456,6 +1456,31 @@ TRACE_EVENT(btrfs_record_snapshot_destroy,
__entry->dir)
);
TRACE_EVENT(btrfs_record_new_subvolume,
TP_PROTO(const struct btrfs_trans_handle *trans,
const struct btrfs_inode *dir),
TP_ARGS(trans, dir),
TP_STRUCT__entry_btrfs(
__field( u64, root_objectid )
__field( u64, transid )
__field( u64, dir )
),
TP_fast_assign(
TP_fast_assign_fsid(trans->fs_info);
__entry->root_objectid = btrfs_root_id(dir->root);
__entry->transid = trans->transid;
__entry->dir = btrfs_ino(dir);
),
TP_printk_btrfs("root=%llu(%s) transid=%llu dir=%llu",
show_root_type(__entry->root_objectid), __entry->transid,
__entry->dir)
);
TRACE_EVENT(btrfs_sync_fs,
TP_PROTO(const struct btrfs_fs_info *fs_info, int wait),