btrfs: tracepoints: add trace event for transaction aborts

While tracing it's useful to know not just when a transaction is committed
but also when one is aborted. So add a trace event for transaction aborts.

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-04-23 15:17:16 +01:00
committed by David Sterba
parent 889ad3845a
commit b4bbe7d759
2 changed files with 23 additions and 0 deletions

View File

@@ -2731,6 +2731,7 @@ void __cold __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
WRITE_ONCE(trans->aborted, error);
WRITE_ONCE(trans->transaction->aborted, error);
trace_btrfs_transaction_abort(trans);
if (first_hit) {
btrfs_err(fs_info, "Transaction %llu aborted (error %d)",
trans->transid, error);

View File

@@ -201,6 +201,28 @@ TRACE_EVENT(btrfs_transaction_commit,
__entry->in_fsync)
);
TRACE_EVENT(btrfs_transaction_abort,
TP_PROTO(const struct btrfs_trans_handle *trans),
TP_ARGS(trans),
TP_STRUCT__entry_btrfs(
__field( u64, generation )
__field( bool, in_fsync )
__field( int, error )
),
TP_fast_assign_btrfs(trans->fs_info,
__entry->generation = trans->transid;
__entry->in_fsync = trans->in_fsync;
__entry->error = trans->aborted;
),
TP_printk_btrfs("gen=%llu in_fsync=%d error=%d", __entry->generation,
__entry->in_fsync, __entry->error)
);
DECLARE_EVENT_CLASS(btrfs__inode,
TP_PROTO(const struct inode *inode),