diff mbox series

[3/3] btrfs: mark transaction id check as unlikely at btrfs_mark_buffer_dirty()

Message ID fbe818ae8d68519e419b53ba847ab7ac70285f13.1694519544.git.fdmanana@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs: some updates to btrfs_mark_buffer_dirty() | expand

Commit Message

Filipe Manana Sept. 12, 2023, 12:04 p.m. UTC
From: Filipe Manana <fdmanana@suse.com>

At btrfs_mark_buffer_dirty(), having a transaction id mismatch is never
expected to happen and it usually means there's a bug or some memory
corruption due to a bitflip for example. So mark the condition as unlikely
to optimize code generation as well as to make it obvious for human
readers that it is a very unexpected condition.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
 fs/btrfs/disk-io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index d906368a2d3f..163f37ad1b27 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -4403,7 +4403,7 @@  void btrfs_mark_buffer_dirty(struct btrfs_trans_handle *trans,
 	/* This is an active transaction (its state < TRANS_STATE_UNBLOCKED). */
 	ASSERT(trans->transid == fs_info->generation);
 	btrfs_assert_tree_write_locked(buf);
-	if (transid != fs_info->generation) {
+	if (unlikely(transid != fs_info->generation)) {
 		btrfs_abort_transaction(trans, -EUCLEAN);
 		btrfs_crit(fs_info,
 "dirty buffer transid mismatch, logical %llu found transid %llu running transid %llu",