btrfs: Open code __btrfs_free_reserved_extent in btrfs_free_reserved_extent
authorNikolay Borisov <nborisov@suse.com>
Thu, 21 Nov 2019 12:03:30 +0000 (14:03 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 20 Jan 2020 15:40:51 +0000 (16:40 +0100)
__btrfs_free_reserved_extent performs 2 entirely different operations
depending on whether its 'pin' argument is true or false. This patch
lifts the 2nd case (pin is false) into it's sole caller
btrfs_free_reserved_extent. No semantics changes.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-tree.c

index 3495710c72b82a2a3780afd0b31709db05b859b4..215dceaacaead18ca4a6c8f573a8dec9b8cf476b 100644 (file)
@@ -4179,14 +4179,7 @@ static int __btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info,
                return -ENOSPC;
        }
 
-       if (pin)
-               pin_down_extent(cache, start, len, 1);
-       else {
-               btrfs_add_free_space(cache, start, len);
-               btrfs_free_reserved_bytes(cache, len, delalloc);
-               trace_btrfs_reserved_extent_free(fs_info, start, len);
-       }
-
+       ret = pin_down_extent(cache, start, len, 1);
        btrfs_put_block_group(cache);
        return ret;
 }
@@ -4194,7 +4187,20 @@ static int __btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info,
 int btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info,
                               u64 start, u64 len, int delalloc)
 {
-       return __btrfs_free_reserved_extent(fs_info, start, len, 0, delalloc);
+       struct btrfs_block_group *cache;
+
+       cache = btrfs_lookup_block_group(fs_info, start);
+       if (!cache) {
+               btrfs_err(fs_info, "unable to find block group for %llu", start);
+               return -ENOSPC;
+       }
+
+       btrfs_add_free_space(cache, start, len);
+       btrfs_free_reserved_bytes(cache, len, delalloc);
+       trace_btrfs_reserved_extent_free(fs_info, start, len);
+
+       btrfs_put_block_group(cache);
+       return 0;
 }
 
 int btrfs_free_and_pin_reserved_extent(struct btrfs_fs_info *fs_info,