Lines Matching refs:block_group
2484 struct btrfs_block_group *block_group; in btrfs_extent_readonly() local
2487 block_group = btrfs_lookup_block_group(fs_info, bytenr); in btrfs_extent_readonly()
2488 if (!block_group || block_group->ro) in btrfs_extent_readonly()
2490 if (block_group) in btrfs_extent_readonly()
2491 btrfs_put_block_group(block_group); in btrfs_extent_readonly()
2607 struct btrfs_block_group *block_group; in __exclude_logged_extent() local
2610 block_group = btrfs_lookup_block_group(fs_info, start); in __exclude_logged_extent()
2611 if (!block_group) in __exclude_logged_extent()
2614 btrfs_cache_block_group(block_group, 0); in __exclude_logged_extent()
2615 caching_ctl = btrfs_get_caching_control(block_group); in __exclude_logged_extent()
2619 BUG_ON(!btrfs_block_group_done(block_group)); in __exclude_logged_extent()
2620 ret = btrfs_remove_free_space(block_group, start, num_bytes); in __exclude_logged_extent()
2628 ret = btrfs_remove_free_space(block_group, in __exclude_logged_extent()
2632 ret = btrfs_remove_free_space(block_group, in __exclude_logged_extent()
2647 btrfs_put_block_group(block_group); in __exclude_logged_extent()
2815 struct btrfs_block_group *block_group, *tmp; in btrfs_finish_extent_commit() local
2860 list_for_each_entry_safe(block_group, tmp, deleted_bgs, bg_list) { in btrfs_finish_extent_commit()
2866 block_group->start, in btrfs_finish_extent_commit()
2867 block_group->length, in btrfs_finish_extent_commit()
2870 list_del_init(&block_group->bg_list); in btrfs_finish_extent_commit()
2871 btrfs_unfreeze_block_group(block_group); in btrfs_finish_extent_commit()
2872 btrfs_put_block_group(block_group); in btrfs_finish_extent_commit()
3423 struct btrfs_block_group *block_group, in btrfs_lock_cluster() argument
3432 used_bg = cluster->block_group; in btrfs_lock_cluster()
3436 if (used_bg == block_group) in btrfs_lock_cluster()
3453 if (used_bg == cluster->block_group) in btrfs_lock_cluster()
3573 WARN_ON(last_ptr->block_group != cluster_bg); in find_free_extent_clustered()
3707 static int do_allocation_clustered(struct btrfs_block_group *block_group, in do_allocation_clustered() argument
3715 ret = find_free_extent_clustered(block_group, ffe_ctl, bg_ret); in do_allocation_clustered()
3721 return find_free_extent_unclustered(block_group, ffe_ctl); in do_allocation_clustered()
3724 static int do_allocation(struct btrfs_block_group *block_group, in do_allocation() argument
3730 return do_allocation_clustered(block_group, ffe_ctl, bg_ret); in do_allocation()
3736 static void release_block_group(struct btrfs_block_group *block_group, in release_block_group() argument
3749 BUG_ON(btrfs_bg_flags_to_raid_index(block_group->flags) != in release_block_group()
3751 btrfs_release_block_group(block_group, delalloc); in release_block_group()
3930 if (last_ptr->block_group) in prepare_allocation_clustered()
3994 struct btrfs_block_group *block_group = NULL; in find_free_extent() local
4039 block_group = btrfs_lookup_block_group(fs_info, in find_free_extent()
4048 if (block_group && block_group_bits(block_group, flags) && in find_free_extent()
4049 block_group->cached != BTRFS_CACHE_NO) { in find_free_extent()
4051 if (list_empty(&block_group->list) || in find_free_extent()
4052 block_group->ro) { in find_free_extent()
4059 btrfs_put_block_group(block_group); in find_free_extent()
4063 block_group->flags); in find_free_extent()
4064 btrfs_lock_block_group(block_group, delalloc); in find_free_extent()
4067 } else if (block_group) { in find_free_extent()
4068 btrfs_put_block_group(block_group); in find_free_extent()
4077 list_for_each_entry(block_group, in find_free_extent()
4082 if (unlikely(block_group->ro)) in find_free_extent()
4085 btrfs_grab_block_group(block_group, delalloc); in find_free_extent()
4086 ffe_ctl.search_start = block_group->start; in find_free_extent()
4093 if (!block_group_bits(block_group, flags)) { in find_free_extent()
4104 if ((flags & extra) && !(block_group->flags & extra)) in find_free_extent()
4112 btrfs_release_block_group(block_group, delalloc); in find_free_extent()
4117 ffe_ctl.cached = btrfs_block_group_done(block_group); in find_free_extent()
4120 ret = btrfs_cache_block_group(block_group, 0); in find_free_extent()
4138 if (unlikely(block_group->cached == BTRFS_CACHE_ERROR)) in find_free_extent()
4142 ret = do_allocation(block_group, &ffe_ctl, &bg_ret); in find_free_extent()
4144 if (bg_ret && bg_ret != block_group) { in find_free_extent()
4145 btrfs_release_block_group(block_group, delalloc); in find_free_extent()
4146 block_group = bg_ret; in find_free_extent()
4160 block_group->start + block_group->length) { in find_free_extent()
4161 btrfs_add_free_space(block_group, ffe_ctl.found_offset, in find_free_extent()
4167 btrfs_add_free_space(block_group, ffe_ctl.found_offset, in find_free_extent()
4170 ret = btrfs_add_reserved_bytes(block_group, ram_bytes, in find_free_extent()
4173 btrfs_add_free_space(block_group, ffe_ctl.found_offset, in find_free_extent()
4177 btrfs_inc_block_group_reservations(block_group); in find_free_extent()
4183 trace_btrfs_reserve_extent(block_group, ffe_ctl.search_start, in find_free_extent()
4185 btrfs_release_block_group(block_group, delalloc); in find_free_extent()
4188 release_block_group(block_group, &ffe_ctl, delalloc); in find_free_extent()
4535 struct btrfs_block_group *block_group; in btrfs_alloc_logged_file_extent() local
4549 block_group = btrfs_lookup_block_group(fs_info, ins->objectid); in btrfs_alloc_logged_file_extent()
4550 if (!block_group) in btrfs_alloc_logged_file_extent()
4553 space_info = block_group->space_info; in btrfs_alloc_logged_file_extent()
4555 spin_lock(&block_group->lock); in btrfs_alloc_logged_file_extent()
4557 block_group->reserved += ins->offset; in btrfs_alloc_logged_file_extent()
4558 spin_unlock(&block_group->lock); in btrfs_alloc_logged_file_extent()
4565 btrfs_put_block_group(block_group); in btrfs_alloc_logged_file_extent()
5663 struct btrfs_block_group *block_group; in btrfs_account_ro_block_groups_free_space() local
5672 list_for_each_entry(block_group, &sinfo->ro_bgs, ro_list) { in btrfs_account_ro_block_groups_free_space()
5673 spin_lock(&block_group->lock); in btrfs_account_ro_block_groups_free_space()
5675 if (!block_group->ro) { in btrfs_account_ro_block_groups_free_space()
5676 spin_unlock(&block_group->lock); in btrfs_account_ro_block_groups_free_space()
5680 factor = btrfs_bg_type_to_factor(block_group->flags); in btrfs_account_ro_block_groups_free_space()
5681 free_bytes += (block_group->length - in btrfs_account_ro_block_groups_free_space()
5682 block_group->used) * factor; in btrfs_account_ro_block_groups_free_space()
5684 spin_unlock(&block_group->lock); in btrfs_account_ro_block_groups_free_space()