btrfs: add unlikely annotations to branches leading to transaction abort
authorDavid Sterba <dsterba@suse.com>
Wed, 17 Sep 2025 17:53:56 +0000 (19:53 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 23 Sep 2025 06:49:26 +0000 (08:49 +0200)
commita929904cf73b650f49cc60941e6e618240096fcb
treeccd334a2f3c97a0f4de83211d7d032b8cf743c1e
parentcc53bd2085c8fa7b199a9a8e10e634b62a6d3fa8
btrfs: add unlikely annotations to branches leading to transaction abort

The unlikely() annotation is a static prediction hint that compiler may
use to reorder code out of hot path. We use it elsewhere (namely
tree-checker.c) for error branches that almost never happen.

Transaction abort is one such error, the btrfs_abort_transaction()
inlines code to check the state and print a warning, this ought to be
out of the hot path.

The most common pattern is when transaction abort is called after
checking a return value and the control flow leads to a quick return.
In other cases it may not be necessary to add unlikely() e.g. when the
function returns anyway or the control flow is not changed noticeably.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
20 files changed:
fs/btrfs/block-group.c
fs/btrfs/ctree.c
fs/btrfs/delayed-inode.c
fs/btrfs/extent-tree.c
fs/btrfs/file-item.c
fs/btrfs/file.c
fs/btrfs/free-space-cache.c
fs/btrfs/free-space-tree.c
fs/btrfs/inode-item.c
fs/btrfs/inode.c
fs/btrfs/ioctl.c
fs/btrfs/qgroup.c
fs/btrfs/raid-stripe-tree.c
fs/btrfs/reflink.c
fs/btrfs/relocation.c
fs/btrfs/root-tree.c
fs/btrfs/transaction.c
fs/btrfs/tree-log.c
fs/btrfs/verity.c
fs/btrfs/volumes.c