]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: qgroup: return correct error when deleting qgroup relation item
authorFilipe Manana <fdmanana@suse.com>
Tue, 20 Jan 2026 19:35:23 +0000 (19:35 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 3 Feb 2026 06:56:20 +0000 (07:56 +0100)
If we fail to delete the second qgroup relation item, we end up returning
success or -ENOENT in case the first item does not exist, instead of
returning the error from the second item deletion.

Fixes: 73798c465b66 ("btrfs: qgroup: Try our best to delete qgroup relations")
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.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/qgroup.c

index 14d393a5853d4675cd4f9a8a93416dd65b839a2c..c03bb96d3a348af009f77a89f4dd92467ffbd7d0 100644 (file)
@@ -1640,8 +1640,10 @@ delete_item:
        if (ret < 0 && ret != -ENOENT)
                goto out;
        ret2 = del_qgroup_relation_item(trans, dst, src);
-       if (ret2 < 0 && ret2 != -ENOENT)
+       if (ret2 < 0 && ret2 != -ENOENT) {
+               ret = ret2;
                goto out;
+       }
 
        /* At least one deletion succeeded, return 0 */
        if (!ret || !ret2)