From: Filipe Manana Date: Thu, 23 Apr 2026 14:17:16 +0000 (+0100) Subject: btrfs: tracepoints: add trace event for transaction aborts X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=b4bbe7d7591e65cf9cc4975ea124fc717df9f128;p=thirdparty%2Flinux.git 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 Signed-off-by: Filipe Manana Signed-off-by: David Sterba --- diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c index b98cb7b0630a4..277953906b913 100644 --- a/fs/btrfs/transaction.c +++ b/fs/btrfs/transaction.c @@ -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); diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h index 4e077abd67044..cb9b6188fcdd4 100644 --- a/include/trace/events/btrfs.h +++ b/include/trace/events/btrfs.h @@ -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),