Home
last modified time | relevance | path

Searched refs:space_info (Results 1 – 19 of 19) sorted by relevance

/linux/fs/btrfs/
H A Dspace-info.c28 * 1) space_info. This is the ultimate arbiter of how much space we can use.
31 * reservations we care about total_bytes - SUM(space_info->bytes_) when
32 * determining if there is space to make an allocation. There is a space_info
38 * much space is accounted for in space_info->bytes_may_use.
44 * values to adjust the space_info counters.
53 * space_info->bytes_may_use += num_bytes
57 * space_info->bytes_may_use -= num_bytes
58 * space_info->bytes_reserved += extent_bytes
62 * space_info->bytes_reserved -= extent_bytes
63 * space_info
231 btrfs_update_space_info_chunk_size(struct btrfs_space_info * space_info,u64 chunk_size) btrfs_update_space_info_chunk_size() argument
238 init_space_info(struct btrfs_fs_info * info,struct btrfs_space_info * space_info,u64 flags) init_space_info() argument
288 struct btrfs_space_info *space_info; create_space_info() local
362 struct btrfs_space_info *space_info = block_group->space_info; btrfs_add_bg_to_space_info() local
425 calc_available_free_space(struct btrfs_fs_info * fs_info,const struct btrfs_space_info * space_info,enum btrfs_reserve_flush_enum flush) calc_available_free_space() argument
494 btrfs_can_overcommit(struct btrfs_fs_info * fs_info,const struct btrfs_space_info * space_info,u64 bytes,enum btrfs_reserve_flush_enum flush) btrfs_can_overcommit() argument
512 remove_ticket(struct btrfs_space_info * space_info,struct reserve_ticket * ticket) remove_ticket() argument
527 btrfs_try_granting_tickets(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info) btrfs_try_granting_tickets() argument
572 space_info_flag_to_str(const struct btrfs_space_info * space_info) space_info_flag_to_str() argument
674 shrink_delalloc(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,u64 to_reclaim,bool wait_ordered,bool for_preempt) shrink_delalloc() argument
805 flush_space(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,u64 num_bytes,enum btrfs_flush_state state,bool for_preempt) flush_space() argument
904 btrfs_calc_reclaim_metadata_size(struct btrfs_fs_info * fs_info,const struct btrfs_space_info * space_info) btrfs_calc_reclaim_metadata_size() argument
929 need_preemptive_reclaim(struct btrfs_fs_info * fs_info,const struct btrfs_space_info * space_info) need_preemptive_reclaim() argument
1041 steal_from_global_rsv(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,struct reserve_ticket * ticket) steal_from_global_rsv() argument
1088 maybe_fail_all_tickets(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info) maybe_fail_all_tickets() argument
1132 do_async_reclaim_metadata_space(struct btrfs_space_info * space_info) do_async_reclaim_metadata_space() argument
1222 struct btrfs_space_info *space_info; btrfs_async_reclaim_metadata_space() local
1244 struct btrfs_space_info *space_info; btrfs_preempt_reclaim_metadata_space() local
1378 do_async_reclaim_data_space(struct btrfs_space_info * space_info) do_async_reclaim_data_space() argument
1454 struct btrfs_space_info *space_info; btrfs_async_reclaim_data_space() local
1493 priority_reclaim_metadata_space(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,struct reserve_ticket * ticket,const enum btrfs_flush_state * states,int states_nr) priority_reclaim_metadata_space() argument
1552 priority_reclaim_data_space(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,struct reserve_ticket * ticket) priority_reclaim_data_space() argument
1579 wait_reserve_ticket(struct btrfs_space_info * space_info,struct reserve_ticket * ticket) wait_reserve_ticket() argument
1626 handle_reserve_ticket(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,struct reserve_ticket * ticket,u64 start_ns,u64 orig_bytes,enum btrfs_reserve_flush_enum flush) handle_reserve_ticket() argument
1682 maybe_clamp_preempt(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info) maybe_clamp_preempt() argument
1731 __reserve_bytes(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,u64 orig_bytes,enum btrfs_reserve_flush_enum flush) __reserve_bytes() argument
1878 btrfs_reserve_metadata_bytes(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info,u64 orig_bytes,enum btrfs_reserve_flush_enum flush) btrfs_reserve_metadata_bytes() argument
1905 btrfs_reserve_data_bytes(struct btrfs_space_info * space_info,u64 bytes,enum btrfs_reserve_flush_enum flush) btrfs_reserve_data_bytes() argument
1929 struct btrfs_space_info *space_info; btrfs_dump_space_info_for_trans_abort() local
2030 calc_dynamic_reclaim_threshold(const struct btrfs_space_info * space_info) calc_dynamic_reclaim_threshold() argument
2049 btrfs_calc_reclaim_threshold(const struct btrfs_space_info * space_info) btrfs_calc_reclaim_threshold() argument
2063 is_reclaim_urgent(struct btrfs_space_info * space_info) is_reclaim_urgent() argument
2072 do_reclaim_sweep(struct btrfs_space_info * space_info,int raid) do_reclaim_sweep() argument
2119 btrfs_space_info_update_reclaimable(struct btrfs_space_info * space_info,s64 bytes) btrfs_space_info_update_reclaimable() argument
2130 btrfs_set_periodic_reclaim_ready(struct btrfs_space_info * space_info,bool ready) btrfs_set_periodic_reclaim_ready() argument
2142 btrfs_should_periodic_reclaim(struct btrfs_space_info * space_info) btrfs_should_periodic_reclaim() argument
2162 struct btrfs_space_info *space_info; btrfs_reclaim_sweep() local
2172 btrfs_return_free_space(struct btrfs_space_info * space_info,u64 len) btrfs_return_free_space() argument
[all...]
H A Dspace-info.h72 * if (num_bytes < (space_info->total_bytes -
73 * btrfs_space_info_used(space_info, false))
216 * Periodic reclaim should be a no-op if a space_info hasn't
235 static inline bool btrfs_mixed_space_info(const struct btrfs_space_info *space_info) in btrfs_mixed_space_info() argument
237 return ((space_info->flags & BTRFS_BLOCK_GROUP_METADATA) && in btrfs_mixed_space_info()
238 (space_info->flags & BTRFS_BLOCK_GROUP_DATA)); in btrfs_mixed_space_info()
265 DECLARE_SPACE_INFO_UPDATE(bytes_may_use, "space_info");
272 void btrfs_update_space_info_chunk_size(struct btrfs_space_info *space_info,
283 struct btrfs_space_info *space_info,
287 struct btrfs_space_info *space_info);
293 btrfs_space_info_free_bytes_may_use(struct btrfs_space_info * space_info,u64 num_bytes) btrfs_space_info_free_bytes_may_use() argument
[all...]
H A Dblock-rsv.c28 * accounted for in space_info->bytes_may_use, and then add the bytes to
51 * space_info->bytes_may_use.
92 * content to just reserve space from the space_info on demand.
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(fs_info, block_rsv->space_info, in btrfs_block_rsv_add()
262 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv->space_info, in btrfs_block_rsv_refill()
289 if (target && block_rsv->space_info ! in btrfs_block_rsv_release()
432 struct btrfs_space_info *space_info; btrfs_init_global_block_rsv() local
[all...]
H A Dblock-group.c392 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()
906 spin_lock(&block_group->space_info->lock); in caching_thread()
909 block_group->space_info->bytes_used += bytes_used >> 1; in caching_thread()
911 spin_unlock(&block_group->space_info->lock); in caching_thread()
1011 struct list_head *head = &fs_info->space_info; in clear_incompat_bg_bits()
1167 down_write(&block_group->space_info->groups_sem); in btrfs_remove_block_group()
1173 if (list_empty(&block_group->space_info in btrfs_remove_block_group()
1511 struct btrfs_space_info *space_info; btrfs_delete_unused_bgs() local
1834 struct btrfs_space_info *space_info; btrfs_reclaim_bgs_work() local
2538 struct btrfs_space_info *space_info; btrfs_read_block_groups() local
2879 btrfs_make_block_group(struct btrfs_trans_handle * trans,struct btrfs_space_info * space_info,u64 type,u64 chunk_offset,u64 size) btrfs_make_block_group() argument
2979 struct btrfs_space_info *space_info = cache->space_info; btrfs_inc_block_group_ro() local
3681 struct btrfs_space_info *space_info; btrfs_update_block_group() local
3802 struct btrfs_space_info *space_info = cache->space_info; btrfs_add_reserved_bytes() local
3854 struct btrfs_space_info *space_info = cache->space_info; btrfs_free_reserved_bytes() local
3914 struct btrfs_space_info *space_info; btrfs_force_chunk_alloc() local
3926 do_chunk_alloc(struct btrfs_trans_handle * trans,struct btrfs_space_info * space_info,u64 flags) do_chunk_alloc() argument
4139 btrfs_chunk_alloc(struct btrfs_trans_handle * trans,struct btrfs_space_info * space_info,u64 flags,enum btrfs_chunk_alloc_enum force) btrfs_chunk_alloc() argument
4317 struct btrfs_space_info *space_info; reserve_chunk_space() local
4436 check_removing_space_info(struct btrfs_space_info * space_info) check_removing_space_info() argument
4481 struct btrfs_space_info *space_info; btrfs_free_block_groups() local
[all...]
H A Dsysfs.c742 BTRFS_ATTR(space_info, field, btrfs_space_info_show_##field)
763 struct btrfs_space_info *space_info = to_space_info(kobj); in btrfs_chunk_size_store() local
778 if (space_info->flags & BTRFS_BLOCK_GROUP_SYSTEM) in btrfs_chunk_size_store()
799 btrfs_update_space_info_chunk_size(space_info, val); in btrfs_chunk_size_store()
851 struct btrfs_space_info *space_info = to_space_info(kobj); in btrfs_force_chunk_alloc_store() local
877 ret = btrfs_force_chunk_alloc(trans, space_info->flags); in btrfs_force_chunk_alloc_store()
885 BTRFS_ATTR_W(space_info, force_chunk_alloc, btrfs_force_chunk_alloc_store);
902 BTRFS_ATTR_RW(space_info, chunk_size, btrfs_chunk_size_show, btrfs_chunk_size_store);
903 BTRFS_ATTR(space_info, size_classes, btrfs_size_classes_show);
909 struct btrfs_space_info *space_info in btrfs_sinfo_bg_reclaim_threshold_show() local
922 struct btrfs_space_info *space_info = to_space_info(kobj); btrfs_sinfo_bg_reclaim_threshold_store() local
949 struct btrfs_space_info *space_info = to_space_info(kobj); btrfs_sinfo_dynamic_reclaim_show() local
958 struct btrfs_space_info *space_info = to_space_info(kobj); btrfs_sinfo_dynamic_reclaim_store() local
982 struct btrfs_space_info *space_info = to_space_info(kobj); btrfs_sinfo_periodic_reclaim_show() local
991 struct btrfs_space_info *space_info = to_space_info(kobj); btrfs_sinfo_periodic_reclaim_store() local
1859 struct btrfs_space_info *space_info = cache->space_info; btrfs_sysfs_add_block_group_type() local
1922 btrfs_sysfs_remove_space_info(struct btrfs_space_info * space_info) btrfs_sysfs_remove_space_info() argument
1940 alloc_name(struct btrfs_space_info * space_info) alloc_name() argument
1981 btrfs_sysfs_add_space_info_type(struct btrfs_fs_info * fs_info,struct btrfs_space_info * space_info) btrfs_sysfs_add_space_info_type() argument
[all...]
H A Dextent-tree.c2597 spin_lock(&cache->space_info->lock); in pin_down_extent()
2600 btrfs_space_info_update_bytes_pinned(cache->space_info, num_bytes); in pin_down_extent()
2603 cache->space_info->bytes_reserved -= num_bytes; in pin_down_extent()
2606 spin_unlock(&cache->space_info->lock); in pin_down_extent()
2718 struct btrfs_space_info *space_info, u64 *empty_cluster) in fetch_cluster_info() argument
2723 if (btrfs_mixed_space_info(space_info)) in fetch_cluster_info()
2726 if (space_info->flags & BTRFS_BLOCK_GROUP_METADATA) { in fetch_cluster_info()
2732 } else if ((space_info->flags & BTRFS_BLOCK_GROUP_DATA) && in fetch_cluster_info()
2746 struct btrfs_space_info *space_info; in unpin_extent_range() local
2770 cache->space_info, in unpin_extent_range()
3854 struct btrfs_space_info *space_info = block_group->space_info; do_allocation_zoned() local
4156 find_free_extent_update_loop(struct btrfs_fs_info * fs_info,struct btrfs_key * ins,struct find_free_extent_ctl * ffe_ctl,struct btrfs_space_info * space_info,bool full_search) find_free_extent_update_loop() argument
4250 prepare_allocation_clustered(struct btrfs_fs_info * fs_info,struct find_free_extent_ctl * ffe_ctl,struct btrfs_space_info * space_info,struct btrfs_key * ins) prepare_allocation_clustered() argument
4337 prepare_allocation(struct btrfs_fs_info * fs_info,struct find_free_extent_ctl * ffe_ctl,struct btrfs_space_info * space_info,struct btrfs_key * ins) prepare_allocation() argument
4384 struct btrfs_space_info *space_info; find_free_extent() local
4988 struct btrfs_space_info *space_info; btrfs_alloc_logged_file_extent() local
[all...]
H A Dzoned.c2534 struct btrfs_space_info *space_info = data_sinfo; in btrfs_zoned_reserve_data_reloc_bg() local
2553 alloc_flags = btrfs_get_alloc_profile(fs_info, space_info->flags); in btrfs_zoned_reserve_data_reloc_bg()
2558 bg_list = &space_info->block_groups[index]; in btrfs_zoned_reserve_data_reloc_bg()
2568 if (space_info == data_sinfo) { in btrfs_zoned_reserve_data_reloc_bg()
2576 down_write(&space_info->groups_sem); in btrfs_zoned_reserve_data_reloc_bg()
2579 ASSERT(!list_empty(&space_info->block_groups[index])); in btrfs_zoned_reserve_data_reloc_bg()
2580 up_write(&space_info->groups_sem); in btrfs_zoned_reserve_data_reloc_bg()
2582 spin_lock(&space_info->lock); in btrfs_zoned_reserve_data_reloc_bg()
2583 space_info->total_bytes -= bg->length; in btrfs_zoned_reserve_data_reloc_bg()
2584 space_info->disk_total -= bg->length * factor; in btrfs_zoned_reserve_data_reloc_bg()
[all …]
H A Dsysfs.h41 struct btrfs_space_info *space_info);
42 void btrfs_sysfs_remove_space_info(struct btrfs_space_info *space_info);
H A Dblock-group.h170 struct btrfs_space_info *space_info; member
227 * on the space_info's groups_sem semaphore.
336 struct btrfs_space_info *space_info,
353 struct btrfs_space_info *space_info, u64 flags,
H A Ddelayed-ref.c214 struct btrfs_space_info *space_info = block_rsv->space_info; in btrfs_delayed_refs_rsv_refill() local
231 ret = btrfs_reserve_metadata_bytes(fs_info, 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()
1299 spin_lock(&bg->space_info->lock); in btrfs_destroy_delayed_refs()
1302 btrfs_space_info_update_bytes_pinned(bg->space_info, in btrfs_destroy_delayed_refs()
1305 bg->space_info->bytes_reserved -= head->num_bytes; in btrfs_destroy_delayed_refs()
1307 spin_unlock(&bg->space_info->lock); in btrfs_destroy_delayed_refs()
H A Dblock-rsv.h35 struct btrfs_space_info *space_info; member
H A Dtransaction.c570 struct btrfs_space_info *si = fs_info->trans_block_rsv.space_info; in btrfs_reserve_trans_metadata()
666 if (trans_rsv->space_info->force_alloc) in start_transaction()
758 * If the space_info is marked ALLOC_FORCE then we'll get upgraded to in start_transaction()
764 struct btrfs_space_info *space_info = h->block_rsv->space_info; in start_transaction() local
765 u64 flags = space_info->flags; in start_transaction()
767 btrfs_chunk_alloc(h, space_info, btrfs_get_alloc_profile(fs_info, flags), in start_transaction()
807 btrfs_space_info_free_bytes_may_use(trans_rsv->space_info, delayed_refs_bytes); in start_transaction()
H A Dfree-space-cache.c2696 struct btrfs_space_info *sinfo = block_group->space_info; in __btrfs_add_free_space_zoned()
3655 struct btrfs_space_info *space_info = block_group->space_info; in do_trimming() local
3665 spin_lock(&space_info->lock); in do_trimming()
3669 space_info->bytes_reserved += reserved_bytes; in do_trimming()
3673 spin_unlock(&space_info->lock); in do_trimming()
3694 spin_lock(&space_info->lock); in do_trimming()
3697 space_info->bytes_readonly += reserved_bytes; in do_trimming()
3699 space_info->bytes_reserved -= reserved_bytes; in do_trimming()
3701 spin_unlock(&space_info in do_trimming()
[all...]
H A Droot-tree.c530 rsv->space_info = btrfs_find_space_info(fs_info, in btrfs_subvolume_reserve_metadata()
H A Dfs.h672 * The space_info list is effectively read only after initial setup.
676 struct list_head space_info; member
H A Dsuper.c1737 list_for_each_entry(found, &fs_info->space_info, list) { in btrfs_statfs()
1808 if (!mixed && block_rsv->space_info->full && in btrfs_statfs()
H A Dtree-log.c2618 spin_lock(&cache->space_info->lock); in unaccount_log_buffer()
2621 cache->space_info->bytes_reserved -= fs_info->nodesize; in unaccount_log_buffer()
2623 spin_unlock(&cache->space_info->lock); in unaccount_log_buffer()
H A Dioctl.c2983 list_for_each_entry(tmp, &fs_info->space_info, list) { in btrfs_ioctl_space_info()
3002 * Global block reserve, exported as a space_info in btrfs_ioctl_space_info()
3036 list_for_each_entry(tmp, &fs_info->space_info, list) { in btrfs_ioctl_space_info()
H A Ddisk-io.c2816 INIT_LIST_HEAD(&fs_info->space_info); in btrfs_init_fs_info()