There's 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 <w...@suse.com>
Signed-off-by: Josef Bacik <jo...@toxicpanda.com>
---
 fs/btrfs/relocation.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index 557d4f09ce7f..371cd4476daf 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -1915,7 +1915,7 @@ int prepare_to_merge(struct reloc_control *rc, int err)
        list_splice(&reloc_roots, &rc->reloc_roots);
 
        if (!err)
-               btrfs_commit_transaction(trans);
+               err = btrfs_commit_transaction(trans);
        else
                btrfs_end_transaction(trans);
        return err;
@@ -3487,8 +3487,7 @@ int prepare_to_relocate(struct reloc_control *rc)
                 */
                return PTR_ERR(trans);
        }
-       btrfs_commit_transaction(trans);
-       return 0;
+       return btrfs_commit_transaction(trans);
 }
 
 static noinline_for_stack int relocate_block_group(struct reloc_control *rc)
@@ -3647,7 +3646,9 @@ static noinline_for_stack int relocate_block_group(struct 
reloc_control *rc)
                err = PTR_ERR(trans);
                goto out_free;
        }
-       btrfs_commit_transaction(trans);
+       ret = btrfs_commit_transaction(trans);
+       if (ret && !err)
+               err = ret;
 out_free:
        ret = clean_dirty_subvols(rc);
        if (ret < 0 && !err)
-- 
2.26.2

Reply via email to