int btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info,
                               u64 start, u64 len, int delalloc);
-int btrfs_free_and_pin_reserved_extent(struct btrfs_fs_info *fs_info,
-                                      u64 start, u64 len);
+int btrfs_pin_reserved_extent(struct btrfs_fs_info *fs_info, u64 start,
+                             u64 len);
 void btrfs_prepare_extent_commit(struct btrfs_fs_info *fs_info);
 int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans);
 int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans,
 
        return ret;
 }
 
-static int __btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info,
-                                       u64 start, u64 len,
-                                       int pin, int delalloc)
+int btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info,
+                              u64 start, u64 len, int delalloc)
 {
        struct btrfs_block_group *cache;
-       int ret = 0;
 
        cache = btrfs_lookup_block_group(fs_info, start);
        if (!cache) {
                return -ENOSPC;
        }
 
-       ret = pin_down_extent(cache, start, len, 1);
+       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 ret;
+       return 0;
 }
 
-int btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info,
-                              u64 start, u64 len, int delalloc)
+int btrfs_pin_reserved_extent(struct btrfs_fs_info *fs_info, u64 start, u64 len)
 {
        struct btrfs_block_group *cache;
+       int ret = 0;
 
        cache = btrfs_lookup_block_group(fs_info, start);
        if (!cache) {
                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);
-
+       ret = pin_down_extent(cache, start, len, 1);
        btrfs_put_block_group(cache);
-       return 0;
-}
-
-int btrfs_free_and_pin_reserved_extent(struct btrfs_fs_info *fs_info,
-                                      u64 start, u64 len)
-{
-       return __btrfs_free_reserved_extent(fs_info, start, len, 1, 0);
+       return ret;
 }
 
 static int alloc_reserved_file_extent(struct btrfs_trans_handle *trans,
 
 
                                WARN_ON(root_owner !=
                                        BTRFS_TREE_LOG_OBJECTID);
-                               ret = btrfs_free_and_pin_reserved_extent(
-                                                       fs_info, bytenr,
-                                                       blocksize);
+                               ret = btrfs_pin_reserved_extent(fs_info,
+                                                       bytenr, blocksize);
                                if (ret) {
                                        free_extent_buffer(next);
                                        return ret;
                                }
 
                                WARN_ON(root_owner != BTRFS_TREE_LOG_OBJECTID);
-                               ret = btrfs_free_and_pin_reserved_extent(
-                                               fs_info,
+                               ret = btrfs_pin_reserved_extent(fs_info,
                                                path->nodes[*level]->start,
                                                path->nodes[*level]->len);
                                if (ret)
 
                        WARN_ON(log->root_key.objectid !=
                                BTRFS_TREE_LOG_OBJECTID);
-                       ret = btrfs_free_and_pin_reserved_extent(fs_info,
-                                                       next->start, next->len);
+                       ret = btrfs_pin_reserved_extent(fs_info, next->start,
+                                                       next->len);
                        if (ret)
                                goto out;
                }