mirror of
https://github.com/torvalds/linux.git
synced 2026-07-30 11:11:26 +02:00
btrfs: unfold transaction aborts when replaying log trees
We have a single line doing a transaction abort in case either we got an error from btrfs_get_fs_root() different from -ENOENT or we got an error from btrfs_pin_extent_for_log_replay(), making it hard to figure out which function call failed when looking at a transaction abort massages and stack trace in dmesg. Change this to have an explicit transaction abort for each one of the two cases. 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>
This commit is contained in:
parent
2a946bf6d6
commit
8f1e1b263d
|
|
@ -7255,6 +7255,11 @@ int btrfs_recover_log_trees(struct btrfs_root *log_root_tree)
|
|||
true);
|
||||
if (IS_ERR(wc.replay_dest)) {
|
||||
ret = PTR_ERR(wc.replay_dest);
|
||||
if (ret != -ENOENT) {
|
||||
btrfs_put_root(log);
|
||||
btrfs_abort_transaction(trans, ret);
|
||||
goto error;
|
||||
}
|
||||
|
||||
/*
|
||||
* We didn't find the subvol, likely because it was
|
||||
|
|
@ -7267,8 +7272,7 @@ int btrfs_recover_log_trees(struct btrfs_root *log_root_tree)
|
|||
* block from being modified, and we'll just bail for
|
||||
* each subsequent pass.
|
||||
*/
|
||||
if (ret == -ENOENT)
|
||||
ret = btrfs_pin_extent_for_log_replay(trans, log->node);
|
||||
ret = btrfs_pin_extent_for_log_replay(trans, log->node);
|
||||
btrfs_put_root(log);
|
||||
|
||||
if (!ret)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user