spin_unlock(&sinfo->lock);
 }
 
-/*
- * Checks to see if it's even possible to relocate this block group.
- *
- * @return - -1 if it's not a good idea to relocate this block group, 0 if its
- * ok to go ahead and try.
- */
-int btrfs_can_relocate(struct btrfs_fs_info *fs_info, u64 bytenr)
-{
-       struct btrfs_block_group_cache *block_group;
-       struct btrfs_space_info *space_info;
-       struct btrfs_fs_devices *fs_devices = fs_info->fs_devices;
-       struct btrfs_device *device;
-       u64 min_free;
-       u64 dev_min = 1;
-       u64 dev_nr = 0;
-       u64 target;
-       int debug;
-       int index;
-       int full = 0;
-       int ret = 0;
-
-       debug = btrfs_test_opt(fs_info, ENOSPC_DEBUG);
-
-       block_group = btrfs_lookup_block_group(fs_info, bytenr);
-
-       /* odd, couldn't find the block group, leave it alone */
-       if (!block_group) {
-               if (debug)
-                       btrfs_warn(fs_info,
-                                  "can't find block group for bytenr %llu",
-                                  bytenr);
-               return -1;
-       }
-
-       min_free = btrfs_block_group_used(&block_group->item);
-
-       /* no bytes used, we're good */
-       if (!min_free)
-               goto out;
-
-       space_info = block_group->space_info;
-       spin_lock(&space_info->lock);
-
-       full = space_info->full;
-
-       /*
-        * if this is the last block group we have in this space, we can't
-        * relocate it unless we're able to allocate a new chunk below.
-        *
-        * Otherwise, we need to make sure we have room in the space to handle
-        * all of the extents from this block group.  If we can, we're good
-        */
-       if ((space_info->total_bytes != block_group->key.offset) &&
-           (btrfs_space_info_used(space_info, false) + min_free <
-            space_info->total_bytes)) {
-               spin_unlock(&space_info->lock);
-               goto out;
-       }
-       spin_unlock(&space_info->lock);
-
-       /*
-        * ok we don't have enough space, but maybe we have free space on our
-        * devices to allocate new chunks for relocation, so loop through our
-        * alloc devices and guess if we have enough space.  if this block
-        * group is going to be restriped, run checks against the target
-        * profile instead of the current one.
-        */
-       ret = -1;
-
-       /*
-        * index:
-        *      0: raid10
-        *      1: raid1
-        *      2: dup
-        *      3: raid0
-        *      4: single
-        */
-       target = get_restripe_target(fs_info, block_group->flags);
-       if (target) {
-               index = btrfs_bg_flags_to_raid_index(extended_to_chunk(target));
-       } else {
-               /*
-                * this is just a balance, so if we were marked as full
-                * we know there is no space for a new chunk
-                */
-               if (full) {
-                       if (debug)
-                               btrfs_warn(fs_info,
-                                          "no space to alloc new chunk for block group %llu",
-                                          block_group->key.objectid);
-                       goto out;
-               }
-
-               index = btrfs_bg_flags_to_raid_index(block_group->flags);
-       }
-
-       if (index == BTRFS_RAID_RAID10) {
-               dev_min = 4;
-               /* Divide by 2 */
-               min_free >>= 1;
-       } else if (index == BTRFS_RAID_RAID1) {
-               dev_min = 2;
-       } else if (index == BTRFS_RAID_DUP) {
-               /* Multiply by 2 */
-               min_free <<= 1;
-       } else if (index == BTRFS_RAID_RAID0) {
-               dev_min = fs_devices->rw_devices;
-               min_free = div64_u64(min_free, dev_min);
-       }
-
-       mutex_lock(&fs_info->chunk_mutex);
-       list_for_each_entry(device, &fs_devices->alloc_list, dev_alloc_list) {
-               u64 dev_offset;
-
-               /*
-                * check to make sure we can actually find a chunk with enough
-                * space to fit our block group in.
-                */
-               if (device->total_bytes > device->bytes_used + min_free &&
-                   !test_bit(BTRFS_DEV_STATE_REPLACE_TGT, &device->dev_state)) {
-                       ret = find_free_dev_extent(device, min_free,
-                                                  &dev_offset, NULL);
-                       if (!ret)
-                               dev_nr++;
-
-                       if (dev_nr >= dev_min)
-                               break;
-
-                       ret = -1;
-               }
-       }
-       if (debug && ret == -1)
-               btrfs_warn(fs_info,
-                          "no space to allocate a new chunk for block group %llu",
-                          block_group->key.objectid);
-       mutex_unlock(&fs_info->chunk_mutex);
-out:
-       btrfs_put_block_group(block_group);
-       return ret;
-}
-
 static int find_first_block_group(struct btrfs_fs_info *fs_info,
                                  struct btrfs_path *path,
                                  struct btrfs_key *key)