btrfs: check return value of btrfs_commit_transaction in relocation
There are a few places where we don't check the return value of btrfs_commit_transaction in relocation.c. Thankfully all these places have straightforward error handling, so simply change all of the sites at once. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>pull/634/merge
parent
24213fa46c
commit
fb686c6824
|
|
@ -1924,7 +1924,7 @@ again:
|
||||||
list_splice(&reloc_roots, &rc->reloc_roots);
|
list_splice(&reloc_roots, &rc->reloc_roots);
|
||||||
|
|
||||||
if (!err)
|
if (!err)
|
||||||
btrfs_commit_transaction(trans);
|
err = btrfs_commit_transaction(trans);
|
||||||
else
|
else
|
||||||
btrfs_end_transaction(trans);
|
btrfs_end_transaction(trans);
|
||||||
return err;
|
return err;
|
||||||
|
|
@ -3496,8 +3496,7 @@ int prepare_to_relocate(struct reloc_control *rc)
|
||||||
*/
|
*/
|
||||||
return PTR_ERR(trans);
|
return PTR_ERR(trans);
|
||||||
}
|
}
|
||||||
btrfs_commit_transaction(trans);
|
return btrfs_commit_transaction(trans);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static noinline_for_stack int relocate_block_group(struct reloc_control *rc)
|
static noinline_for_stack int relocate_block_group(struct reloc_control *rc)
|
||||||
|
|
@ -3656,7 +3655,9 @@ restart:
|
||||||
err = PTR_ERR(trans);
|
err = PTR_ERR(trans);
|
||||||
goto out_free;
|
goto out_free;
|
||||||
}
|
}
|
||||||
btrfs_commit_transaction(trans);
|
ret = btrfs_commit_transaction(trans);
|
||||||
|
if (ret && !err)
|
||||||
|
err = ret;
|
||||||
out_free:
|
out_free:
|
||||||
ret = clean_dirty_subvols(rc);
|
ret = clean_dirty_subvols(rc);
|
||||||
if (ret < 0 && !err)
|
if (ret < 0 && !err)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue