]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
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 9e52a6f8f7af7996d6e995ddee3f6b37e827080d..a89243a57fde4a9dc1d893f0b6a9206328fd9faa 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;
 }