btrfs: use btrfs_crit at btrfs_mark_buffer_dirty()
authorFilipe Manana <fdmanana@suse.com>
Tue, 12 Sep 2023 12:04:30 +0000 (13:04 +0100)
committerDavid Sterba <dsterba@suse.com>
Thu, 12 Oct 2023 14:44:07 +0000 (16:44 +0200)
There's no need to use WARN() at btrfs_mark_buffer_dirty() to print an
error message, as we have the fs_info pointer we can use btrfs_crit()
which prints device information and makes the message have a more uniform
format. As we are already aborting the transaction we already have a stack
trace printed as well. So replace the use of WARN() with btrfs_crit().

Also slightly reword the message to use 'logical' instead of 'block' as
it's what is used in other error/warning messages.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/disk-io.c

index 05282a2f0f5b8e1fe24724c595ea8ae444f59b95..d906368a2d3fdb1d6a51b06a57349f174d719a8b 100644 (file)
@@ -4404,9 +4404,10 @@ void btrfs_mark_buffer_dirty(struct btrfs_trans_handle *trans,
        ASSERT(trans->transid == fs_info->generation);
        btrfs_assert_tree_write_locked(buf);
        if (transid != fs_info->generation) {
-               WARN(1, KERN_CRIT "btrfs transid mismatch buffer %llu, found %llu running %llu\n",
-                       buf->start, 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",
+                          buf->start, transid, fs_info->generation);
        }
        set_extent_buffer_dirty(buf);
 }