]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: remove err variable from btrfs_delete_subvolume
authorNikolay Borisov <nborisov@suse.com>
Tue, 24 Nov 2020 15:49:30 +0000 (17:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Feb 2024 07:42:00 +0000 (08:42 +0100)
[ Upstream commit ee0d904fd9c5662c58a737c77384f8959fdc8d12 ]

Use only a single 'ret' to control whether we should abort the
transaction or not. That's fine, because if we abort a transaction then
btrfs_end_transaction will return the same value as passed to
btrfs_abort_transaction. No semantic changes.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Stable-dep-of: 3324d0547861 ("btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted")
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/btrfs/inode.c

index c900a39666e38bd75c9829c3e595c9101e65c138..c6b861f5bcfec71ed36570faa61aefc5d8e96eb8 100644 (file)
@@ -4007,7 +4007,6 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
        struct btrfs_block_rsv block_rsv;
        u64 root_flags;
        int ret;
-       int err;
 
        /*
         * Don't allow to delete a subvolume with send in progress. This is
@@ -4036,8 +4035,8 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
 
        down_write(&fs_info->subvol_sem);
 
-       err = may_destroy_subvol(dest);
-       if (err)
+       ret = may_destroy_subvol(dest);
+       if (ret)
                goto out_up_write;
 
        btrfs_init_block_rsv(&block_rsv, BTRFS_BLOCK_RSV_TEMP);
@@ -4046,13 +4045,13 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
         * two for dir entries,
         * two for root ref/backref.
         */
-       err = btrfs_subvolume_reserve_metadata(root, &block_rsv, 5, true);
-       if (err)
+       ret = btrfs_subvolume_reserve_metadata(root, &block_rsv, 5, true);
+       if (ret)
                goto out_up_write;
 
        trans = btrfs_start_transaction(root, 0);
        if (IS_ERR(trans)) {
-               err = PTR_ERR(trans);
+               ret = PTR_ERR(trans);
                goto out_release;
        }
        trans->block_rsv = &block_rsv;
@@ -4062,7 +4061,6 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
 
        ret = btrfs_unlink_subvol(trans, dir, dentry);
        if (ret) {
-               err = ret;
                btrfs_abort_transaction(trans, ret);
                goto out_end_trans;
        }
@@ -4080,7 +4078,6 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
                                        dest->root_key.objectid);
                if (ret) {
                        btrfs_abort_transaction(trans, ret);
-                       err = ret;
                        goto out_end_trans;
                }
        }
@@ -4090,7 +4087,6 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
                                  dest->root_key.objectid);
        if (ret && ret != -ENOENT) {
                btrfs_abort_transaction(trans, ret);
-               err = ret;
                goto out_end_trans;
        }
        if (!btrfs_is_empty_uuid(dest->root_item.received_uuid)) {
@@ -4100,7 +4096,6 @@ int btrfs_delete_subvolume(struct inode *dir, struct dentry *dentry)
                                          dest->root_key.objectid);
                if (ret && ret != -ENOENT) {
                        btrfs_abort_transaction(trans, ret);
-                       err = ret;
                        goto out_end_trans;
                }
        }
@@ -4111,14 +4106,12 @@ out_end_trans:
        trans->block_rsv = NULL;
        trans->bytes_reserved = 0;
        ret = btrfs_end_transaction(trans);
-       if (ret && !err)
-               err = ret;
        inode->i_flags |= S_DEAD;
 out_release:
        btrfs_subvolume_release_metadata(root, &block_rsv);
 out_up_write:
        up_write(&fs_info->subvol_sem);
-       if (err) {
+       if (ret) {
                spin_lock(&dest->root_item_lock);
                root_flags = btrfs_root_flags(&dest->root_item);
                btrfs_set_root_flags(&dest->root_item,
@@ -4136,7 +4129,7 @@ out_up_write:
                }
        }
 
-       return err;
+       return ret;
 }
 
 static int btrfs_rmdir(struct inode *dir, struct dentry *dentry)