Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

btrfs: remove btrfs_handle_fs_error() after failure to recover log trees

There is no need to call btrfs_handle_fs_error() (which we are trying to
deprecate) if we fail to recover log trees:

1) Such a failure results in failing the mount immediately;

2) If the recovery started a transaction before failing, it has already
aborted the transaction down in the call chain.

So remove the btrfs_handle_fs_error() call, replace it with an error
message and assert that the FS is in error state (so that no partial
updates are committed due to a transaction that was not aborted).

Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>

authored by

Filipe Manana and committed by
David Sterba
4db8d56c 64def7d7

+3 -3
+3 -3
fs/btrfs/disk-io.c
··· 2023 2023 /* returns with log_tree_root freed on success */ 2024 2024 ret = btrfs_recover_log_trees(log_tree_root); 2025 2025 btrfs_put_root(log_tree_root); 2026 - if (ret) { 2027 - btrfs_handle_fs_error(fs_info, ret, 2028 - "Failed to recover log tree"); 2026 + if (unlikely(ret)) { 2027 + ASSERT(BTRFS_FS_ERROR(fs_info) != 0); 2028 + btrfs_err(fs_info, "failed to recover log trees with error: %d", ret); 2029 2029 return ret; 2030 2030 } 2031 2031