]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: simplify logic to decrement snapshot counter at btrfs_mksnapshot()
authorFilipe Manana <fdmanana@suse.com>
Tue, 5 Nov 2024 14:38:38 +0000 (14:38 +0000)
committerDavid Sterba <dsterba@suse.com>
Mon, 11 Nov 2024 13:34:22 +0000 (14:34 +0100)
There's no point in having a 'snapshot_force_cow' variable to track if we
need to decrement the root->snapshot_force_cow counter, as we never jump
to the 'out' label after incrementing the counter. Simplify this by
removing the variable and always decrementing the counter before the 'out'
label, right after the call to btrfs_mksubvol().

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/ioctl.c

index 2118c22625cad4f1679403389fa5c97a82a3093a..1fdeb216bf6c5261cffe72adc00c97c739f4e167 100644 (file)
@@ -1049,7 +1049,6 @@ static noinline int btrfs_mksnapshot(const struct path *parent,
                                   struct btrfs_qgroup_inherit *inherit)
 {
        int ret;
-       bool snapshot_force_cow = false;
 
        /*
         * Force new buffered writes to reserve space even when NOCOW is
@@ -1068,15 +1067,13 @@ static noinline int btrfs_mksnapshot(const struct path *parent,
         * creation.
         */
        atomic_inc(&root->snapshot_force_cow);
-       snapshot_force_cow = true;
 
        btrfs_wait_ordered_extents(root, U64_MAX, NULL);
 
        ret = btrfs_mksubvol(parent, idmap, name, namelen,
                             root, readonly, inherit);
+       atomic_dec(&root->snapshot_force_cow);
 out:
-       if (snapshot_force_cow)
-               atomic_dec(&root->snapshot_force_cow);
        btrfs_drew_read_unlock(&root->snapshot_lock);
        return ret;
 }