mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
btrfs: unfold transaction abort at btrfs_insert_one_raid_extent()
We have a common error path where we abort the transaction, but like this in case we get a transaction abort stack trace we don't know exactly which previous function call failed. Instead abort the transaction after any function call that returns an error, so that we can easily identify which function failed. Reviewed-by: Daniel Vacek <neelx@suse.com> 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
35bb03e57a
commit
593062f67b
1 changed files with 5 additions and 2 deletions
|
@ -329,11 +329,14 @@ int btrfs_insert_one_raid_extent(struct btrfs_trans_handle *trans,
|
|||
|
||||
ret = btrfs_insert_item(trans, stripe_root, &stripe_key, stripe_extent,
|
||||
item_size);
|
||||
if (ret == -EEXIST)
|
||||
if (ret == -EEXIST) {
|
||||
ret = update_raid_extent_item(trans, &stripe_key, stripe_extent,
|
||||
item_size);
|
||||
if (ret)
|
||||
if (ret)
|
||||
btrfs_abort_transaction(trans, ret);
|
||||
} else if (ret) {
|
||||
btrfs_abort_transaction(trans, ret);
|
||||
}
|
||||
|
||||
kfree(stripe_extent);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue