| /linux/fs/btrfs/ |
| H A D | space-info.c | 191 struct list_head *head = &info->space_info; in btrfs_clear_space_info_full() 231 void btrfs_update_space_info_chunk_size(struct btrfs_space_info *space_info, in btrfs_update_space_info_chunk_size() argument 234 WRITE_ONCE(space_info->chunk_size, chunk_size); in btrfs_update_space_info_chunk_size() 238 struct btrfs_space_info *space_info, u64 flags) in init_space_info() argument 240 space_info->fs_info = info; in init_space_info() 242 INIT_LIST_HEAD(&space_info->block_groups[i]); in init_space_info() 243 init_rwsem(&space_info->groups_sem); in init_space_info() 244 spin_lock_init(&space_info->lock); in init_space_info() 245 space_info->flags = flags & BTRFS_BLOCK_GROUP_TYPE_MASK; in init_space_info() 246 space_info->force_alloc = CHUNK_ALLOC_NO_FORCE; in init_space_info() [all …]
|
| H A D | block-rsv.c | 109 struct btrfs_space_info *space_info = block_rsv->space_info; in block_rsv_release_bytes() local 153 btrfs_space_info_free_bytes_may_use(space_info, num_bytes); in block_rsv_release_bytes() 186 rsv->space_info = btrfs_find_space_info(fs_info, in btrfs_init_metadata_block_rsv() 221 ret = btrfs_reserve_metadata_bytes(block_rsv->space_info, num_bytes, flush); in btrfs_block_rsv_add() 261 ret = btrfs_reserve_metadata_bytes(block_rsv->space_info, num_bytes, flush); in btrfs_block_rsv_refill() 288 if (target && block_rsv->space_info != target->space_info) in btrfs_block_rsv_release() 325 struct btrfs_space_info *sinfo = block_rsv->space_info; in btrfs_update_global_block_rsv() 434 struct btrfs_space_info *space_info; in btrfs_init_global_block_rsv() local 436 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_SYSTEM); in btrfs_init_global_block_rsv() 437 fs_info->chunk_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv() [all …]
|
| H A D | block-group.c | 392 struct btrfs_space_info *space_info = bg->space_info; in btrfs_wait_block_group_reservations() local 409 down_write(&space_info->groups_sem); in btrfs_wait_block_group_reservations() 410 up_write(&space_info->groups_sem); in btrfs_wait_block_group_reservations() 913 spin_lock(&block_group->space_info->lock); in caching_thread() 916 block_group->space_info->bytes_used += bytes_used >> 1; in caching_thread() 918 spin_unlock(&block_group->space_info->lock); in caching_thread() 1025 struct list_head *head = &fs_info->space_info; in clear_incompat_bg_bits() 1081 spin_lock(&bg->space_info->lock); in btrfs_remove_bg_from_sinfo() 1083 WARN_ON(bg->space_info->total_bytes < bg->length); in btrfs_remove_bg_from_sinfo() 1084 WARN_ON(bg->space_info->bytes_readonly < bg->length - bg->zone_unusable); in btrfs_remove_bg_from_sinfo() [all …]
|
| H A D | sysfs.c | 749 BTRFS_ATTR(space_info, field, btrfs_space_info_show_##field) 770 struct btrfs_space_info *space_info = to_space_info(kobj); in btrfs_chunk_size_store() local 785 if (space_info->flags & BTRFS_BLOCK_GROUP_SYSTEM) in btrfs_chunk_size_store() 806 btrfs_update_space_info_chunk_size(space_info, val); in btrfs_chunk_size_store() 858 struct btrfs_space_info *space_info = to_space_info(kobj); in btrfs_force_chunk_alloc_store() local 884 ret = btrfs_force_chunk_alloc(trans, space_info->flags); in btrfs_force_chunk_alloc_store() 892 BTRFS_ATTR_W(space_info, force_chunk_alloc, btrfs_force_chunk_alloc_store); 909 BTRFS_ATTR_RW(space_info, chunk_size, btrfs_chunk_size_show, btrfs_chunk_size_store); 910 BTRFS_ATTR(space_info, size_classes, btrfs_size_classes_show); 916 struct btrfs_space_info *space_info = to_space_info(kobj); in btrfs_sinfo_bg_reclaim_threshold_show() local [all …]
|
| H A D | extent-tree.c | 2626 struct btrfs_space_info *space_info = bg->space_info; in pin_down_extent() local 2629 spin_lock(&space_info->lock); in pin_down_extent() 2634 space_info->bytes_reserved -= reserved_bytes; in pin_down_extent() 2635 btrfs_space_info_update_bytes_pinned(space_info, num_bytes); in pin_down_extent() 2636 spin_unlock(&space_info->lock); in pin_down_extent() 2747 struct btrfs_space_info *space_info, u64 *empty_cluster) in fetch_cluster_info() argument 2752 if (btrfs_mixed_space_info(space_info)) in fetch_cluster_info() 2755 if (space_info->flags & BTRFS_BLOCK_GROUP_METADATA) { in fetch_cluster_info() 2761 } else if ((space_info->flags & BTRFS_BLOCK_GROUP_DATA) && in fetch_cluster_info() 2775 struct btrfs_space_info *space_info; in unpin_extent_range() local [all …]
|
| H A D | zoned.c | 2751 struct btrfs_space_info *space_info = data_sinfo; in btrfs_zoned_reserve_data_reloc_bg() local 2770 alloc_flags = btrfs_get_alloc_profile(fs_info, space_info->flags); in btrfs_zoned_reserve_data_reloc_bg() 2775 bg_list = &space_info->block_groups[index]; in btrfs_zoned_reserve_data_reloc_bg() 2785 if (space_info == data_sinfo) { in btrfs_zoned_reserve_data_reloc_bg() 2794 down_write(&space_info->groups_sem); in btrfs_zoned_reserve_data_reloc_bg() 2797 ASSERT(!list_empty(&space_info->block_groups[index])); in btrfs_zoned_reserve_data_reloc_bg() 2798 up_write(&space_info->groups_sem); in btrfs_zoned_reserve_data_reloc_bg() 2800 spin_lock(&space_info->lock); in btrfs_zoned_reserve_data_reloc_bg() 2801 space_info->total_bytes -= bg->length; in btrfs_zoned_reserve_data_reloc_bg() 2802 space_info->disk_total -= bg->length * factor; in btrfs_zoned_reserve_data_reloc_bg() [all …]
|
| H A D | delayed-ref.c | 214 struct btrfs_space_info *space_info = block_rsv->space_info; in btrfs_delayed_refs_rsv_refill() local 231 ret = btrfs_reserve_metadata_bytes(space_info, num_bytes, flush); in btrfs_delayed_refs_rsv_refill() 260 btrfs_space_info_free_bytes_may_use(space_info, to_free); in btrfs_delayed_refs_rsv_refill() 1321 spin_lock(&bg->space_info->lock); in btrfs_destroy_delayed_refs() 1324 btrfs_space_info_update_bytes_pinned(bg->space_info, in btrfs_destroy_delayed_refs() 1327 bg->space_info->bytes_reserved -= head->num_bytes; in btrfs_destroy_delayed_refs() 1329 spin_unlock(&bg->space_info->lock); in btrfs_destroy_delayed_refs()
|
| H A D | transaction.c | 573 struct btrfs_space_info *si = fs_info->trans_block_rsv.space_info; in btrfs_reserve_trans_metadata() 669 if (trans_rsv->space_info->force_alloc) in start_transaction() 767 struct btrfs_space_info *space_info = h->block_rsv->space_info; in start_transaction() local 768 u64 flags = space_info->flags; in start_transaction() 770 btrfs_chunk_alloc(h, space_info, btrfs_get_alloc_profile(fs_info, flags), in start_transaction() 810 btrfs_space_info_free_bytes_may_use(trans_rsv->space_info, delayed_refs_bytes); in start_transaction()
|
| H A D | free-space-cache.c | 2690 struct btrfs_space_info *sinfo = block_group->space_info; in __btrfs_add_free_space_zoned() 3658 struct btrfs_space_info *space_info = block_group->space_info; in do_trimming() local 3668 spin_lock(&space_info->lock); in do_trimming() 3674 space_info->bytes_reserved += reserved_bytes; in do_trimming() 3678 spin_unlock(&space_info->lock); in do_trimming() 3699 spin_lock(&space_info->lock); in do_trimming() 3705 space_info->bytes_reserved -= reserved_bytes; in do_trimming() 3707 space_info->bytes_readonly += reserved_bytes; in do_trimming() 3708 spin_unlock(&space_info->lock); in do_trimming()
|
| H A D | volumes.c | 3458 struct btrfs_space_info *space_info; in btrfs_remove_chunk() local 3460 space_info = btrfs_find_space_info(fs_info, sys_flags); in btrfs_remove_chunk() 3461 if (unlikely(!space_info)) { in btrfs_remove_chunk() 3467 sys_bg = btrfs_create_chunk(trans, space_info, sys_flags); in btrfs_remove_chunk() 5427 struct btrfs_space_info *space_info; member 5434 struct btrfs_space_info *space_info; in init_alloc_chunk_ctl_policy_regular() local 5436 space_info = btrfs_find_space_info(fs_devices->fs_info, ctl->type); in init_alloc_chunk_ctl_policy_regular() 5437 ASSERT(space_info); in init_alloc_chunk_ctl_policy_regular() 5439 ctl->max_chunk_size = READ_ONCE(space_info->chunk_size); in init_alloc_chunk_ctl_policy_regular() 5835 block_group = btrfs_make_block_group(trans, ctl->space_info, type, start, in create_chunk() [all …]
|
| H A D | root-tree.c | 511 rsv->space_info = btrfs_find_space_info(fs_info, in btrfs_subvolume_reserve_metadata()
|
| H A D | volumes.h | 723 struct btrfs_space_info *space_info,
|
| H A D | fs.h | 742 struct list_head space_info; member
|
| H A D | super.c | 1742 list_for_each_entry(found, &fs_info->space_info, list) { in btrfs_statfs() 1813 if (!mixed && block_rsv->space_info->full && in btrfs_statfs()
|
| H A D | tree-log.c | 2976 spin_lock(&bg->space_info->lock); in clean_log_buffer() 2979 bg->space_info->bytes_reserved -= fs_info->nodesize; in clean_log_buffer() 2981 spin_unlock(&bg->space_info->lock); in clean_log_buffer()
|
| H A D | ioctl.c | 2853 list_for_each_entry(tmp, &fs_info->space_info, list) { in btrfs_ioctl_space_info() 2906 list_for_each_entry(tmp, &fs_info->space_info, list) { in btrfs_ioctl_space_info()
|
| H A D | relocation.c | 4163 struct btrfs_space_info *sinfo = bg->space_info; in move_existing_remap() 4952 struct btrfs_space_info *sinfo = src_bg->space_info; in do_remap_reloc_trans()
|
| H A D | disk-io.c | 2801 INIT_LIST_HEAD(&fs_info->space_info); in btrfs_init_fs_info()
|