btrfs: avoid transaction commit on error in del_balance_item()
authorFilipe Manana <fdmanana@suse.com>
Tue, 16 Dec 2025 15:51:47 +0000 (15:51 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Feb 2026 06:49:10 +0000 (07:49 +0100)
There's no point in committing the transaction if we failed to delete the
item, since we haven't done anything before. Also stop using two variables
for tracking the return value and use only 'ret'.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.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>
fs/btrfs/volumes.c

index 9e52a6f..a89243a 100644 (file)
@@ -3691,7 +3691,7 @@ static int del_balance_item(struct btrfs_fs_info *fs_info)
        struct btrfs_trans_handle *trans;
        struct btrfs_path *path;
        struct btrfs_key key;
-       int ret, err;
+       int ret;
 
        path = btrfs_alloc_path();
        if (!path)
@@ -3718,9 +3718,11 @@ static int del_balance_item(struct btrfs_fs_info *fs_info)
        ret = btrfs_del_item(trans, root, path);
 out:
        btrfs_free_path(path);
-       err = btrfs_commit_transaction(trans);
-       if (err && !ret)
-               ret = err;
+       if (ret == 0)
+               ret = btrfs_commit_transaction(trans);
+       else
+               btrfs_end_transaction(trans);
+
        return ret;
 }