Searched refs:space_info (Results 1 - 22 of 22) sorted by relevance

/linux-master/fs/btrfs/
H A Dspace-info.c25 * 1) space_info. This is the ultimate arbiter of how much space we can use.
28 * reservations we care about total_bytes - SUM(space_info->bytes_) when
29 * determining if there is space to make an allocation. There is a space_info
35 * much space is accounted for in space_info->bytes_may_use.
41 * values to adjust the space_info counters.
50 * space_info->bytes_may_reserve += num_bytes
54 * space_info->bytes_may_reserve -= num_bytes
55 * space_info->bytes_reserved += extent_bytes
59 * space_info->bytes_reserved -= extent_bytes
60 * space_info
218 btrfs_update_space_info_chunk_size(struct btrfs_space_info *space_info, u64 chunk_size) argument
227 struct btrfs_space_info *space_info; local
343 calc_available_free_space(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, enum btrfs_reserve_flush_enum flush) argument
411 btrfs_can_overcommit(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, u64 bytes, enum btrfs_reserve_flush_enum flush) argument
430 remove_ticket(struct btrfs_space_info *space_info, struct reserve_ticket *ticket) argument
444 btrfs_try_granting_tickets(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info) argument
492 space_info_flag_to_str(const struct btrfs_space_info *space_info) argument
595 shrink_delalloc(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, u64 to_reclaim, bool wait_ordered, bool for_preempt) argument
726 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) argument
830 btrfs_calc_reclaim_metadata_size(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info) argument
855 need_preemptive_reclaim(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info) argument
967 steal_from_global_rsv(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, struct reserve_ticket *ticket) argument
1014 maybe_fail_all_tickets(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info) argument
1067 struct btrfs_space_info *space_info; local
1155 struct btrfs_space_info *space_info; local
1287 struct btrfs_space_info *space_info; local
1387 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) argument
1446 priority_reclaim_data_space(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, struct reserve_ticket *ticket) argument
1474 wait_reserve_ticket(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, struct reserve_ticket *ticket) argument
1521 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) argument
1577 maybe_clamp_preempt(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info) argument
1626 __reserve_bytes(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, u64 orig_bytes, enum btrfs_reserve_flush_enum flush) argument
1775 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) argument
1827 struct btrfs_space_info *space_info; local
[all...]
H A Dspace-info.h72 * if (num_bytes < (space_info->total_bytes -
73 * btrfs_space_info_used(space_info, false))
178 static inline bool btrfs_mixed_space_info(struct btrfs_space_info *space_info) argument
180 return ((space_info->flags & BTRFS_BLOCK_GROUP_METADATA) &&
181 (space_info->flags & BTRFS_BLOCK_GROUP_DATA));
208 DECLARE_SPACE_INFO_UPDATE(bytes_may_use, "space_info");
214 void btrfs_update_space_info_chunk_size(struct btrfs_space_info *space_info,
225 struct btrfs_space_info *space_info,
229 struct btrfs_space_info *space_info);
231 struct btrfs_space_info *space_info, u6
234 btrfs_space_info_free_bytes_may_use( struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, u64 num_bytes) 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; local
154 space_info,
188 rsv->space_info = btrfs_find_space_info(fs_info,
223 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv->space_info,
264 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv->space_info,
291 if (target && block_rsv->space_info !
433 struct btrfs_space_info *space_info; local
[all...]
H A Dblock-group.c381 struct btrfs_space_info *space_info = bg->space_info; local
398 down_write(&space_info->groups_sem);
399 up_write(&space_info->groups_sem);
898 spin_lock(&block_group->space_info->lock);
901 block_group->space_info->bytes_used += bytes_used >> 1;
903 spin_unlock(&block_group->space_info->lock);
1003 struct list_head *head = &fs_info->space_info;
1152 down_write(&block_group->space_info->groups_sem);
1158 if (list_empty(&block_group->space_info
1462 struct btrfs_space_info *space_info; local
1760 const struct btrfs_space_info *space_info = bg->space_info; local
1787 struct btrfs_space_info *space_info; local
2459 struct btrfs_space_info *space_info; local
3601 struct btrfs_space_info *space_info; local
3717 struct btrfs_space_info *space_info = cache->space_info; local
3770 struct btrfs_space_info *space_info = cache->space_info; local
4037 struct btrfs_space_info *space_info; local
4338 struct btrfs_space_info *space_info; local
[all...]
H A Dsysfs.h40 struct btrfs_space_info *space_info);
41 void btrfs_sysfs_remove_space_info(struct btrfs_space_info *space_info);
H A Dsysfs.c740 BTRFS_ATTR(space_info, field, btrfs_space_info_show_##field)
761 struct btrfs_space_info *space_info = to_space_info(kobj); local
776 if (space_info->flags & BTRFS_BLOCK_GROUP_SYSTEM)
797 btrfs_update_space_info_chunk_size(space_info, val);
849 struct btrfs_space_info *space_info = to_space_info(kobj); local
875 ret = btrfs_force_chunk_alloc(trans, space_info->flags);
883 BTRFS_ATTR_W(space_info, force_chunk_alloc, btrfs_force_chunk_alloc_store);
897 BTRFS_ATTR_RW(space_info, chunk_size, btrfs_chunk_size_show, btrfs_chunk_size_store);
898 BTRFS_ATTR(space_info, size_classes, btrfs_size_classes_show);
904 struct btrfs_space_info *space_info local
913 struct btrfs_space_info *space_info = to_space_info(kobj); local
957 ATTRIBUTE_GROUPS(space_info); variable
1631 struct btrfs_space_info *space_info = cache->space_info; local
1694 btrfs_sysfs_remove_space_info(struct btrfs_space_info *space_info) argument
1733 btrfs_sysfs_add_space_info_type(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info) argument
[all...]
H A Dextent-tree.c2630 spin_lock(&cache->space_info->lock);
2633 btrfs_space_info_update_bytes_pinned(fs_info, cache->space_info,
2637 cache->space_info->bytes_reserved -= num_bytes;
2640 spin_unlock(&cache->space_info->lock);
2752 struct btrfs_space_info *space_info, u64 *empty_cluster)
2757 if (btrfs_mixed_space_info(space_info))
2760 if (space_info->flags & BTRFS_BLOCK_GROUP_METADATA) {
2766 } else if ((space_info->flags & BTRFS_BLOCK_GROUP_DATA) &&
2780 struct btrfs_space_info *space_info; local
2804 cache->space_info,
2751 fetch_cluster_info(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, u64 *empty_cluster) argument
3863 struct btrfs_space_info *space_info = block_group->space_info; local
4271 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) argument
4358 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) argument
4407 struct btrfs_space_info *space_info; local
4999 struct btrfs_space_info *space_info; local
[all...]
H A Dblock-rsv.h34 struct btrfs_space_info *space_info; member in struct:btrfs_block_rsv
H A Dzoned.h98 struct btrfs_space_info *space_info, bool do_finish);
265 struct btrfs_space_info *space_info,
264 btrfs_zoned_activate_one_bg(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, bool do_finish) argument
H A Ddelayed-ref.c237 delayed_refs_rsv->space_info, to_free);
253 struct btrfs_space_info *space_info = block_rsv->space_info; local
270 ret = btrfs_reserve_metadata_bytes(fs_info, space_info, num_bytes, flush);
299 btrfs_space_info_free_bytes_may_use(fs_info, space_info, to_free);
H A Dblock-group.h168 struct btrfs_space_info *space_info; member in struct:btrfs_block_group
225 * on the space_info's groups_sem semaphore.
H A Ddelalloc-space.c25 * space_info->bytes_may_use. We set EXTENT_DELALLOC on the inode io_tree
32 * will make the allocation and subtract space_info->bytes_may_use by the
33 * original requested length and increase the space_info->bytes_reserved by
41 * space_info->bytes_reserved and added to space_info->bytes_used.
49 * space_info->bytes_may_use.
54 * be subtracted from space_info->bytes_may_use.
351 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv->space_info,
H A Dfree-space-cache.c2695 struct btrfs_space_info *sinfo = block_group->space_info;
3651 struct btrfs_space_info *space_info = block_group->space_info; local
3661 spin_lock(&space_info->lock);
3665 space_info->bytes_reserved += reserved_bytes;
3669 spin_unlock(&space_info->lock);
3690 spin_lock(&space_info->lock);
3693 space_info->bytes_readonly += reserved_bytes;
3695 space_info->bytes_reserved -= reserved_bytes;
3697 spin_unlock(&space_info
[all...]
H A Dzoned.c2536 struct btrfs_space_info *space_info,
2542 if (!btrfs_is_zoned(fs_info) || (space_info->flags & BTRFS_BLOCK_GROUP_DATA))
2549 down_read(&space_info->groups_sem);
2551 list_for_each_entry(bg, &space_info->block_groups[index],
2564 up_read(&space_info->groups_sem);
2571 up_read(&space_info->groups_sem);
2535 btrfs_zoned_activate_one_bg(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, bool do_finish) argument
H A Dtransaction.c565 struct btrfs_space_info *si = fs_info->trans_block_rsv.space_info;
661 if (trans_rsv->space_info->force_alloc)
753 * If the space_info is marked ALLOC_FORCE then we'll get upgraded to
759 u64 flags = h->block_rsv->space_info->flags;
801 btrfs_space_info_free_bytes_may_use(fs_info, trans_rsv->space_info,
H A Droot-tree.c533 rsv->space_info = btrfs_find_space_info(fs_info,
H A Dfs.h639 * The space_info list is effectively read only after initial setup.
643 struct list_head space_info; member in struct:btrfs_fs_info
H A Ddisk-io.c2745 INIT_LIST_HEAD(&fs_info->space_info);
4595 spin_lock(&cache->space_info->lock);
4599 cache->space_info, head->num_bytes);
4601 cache->space_info->bytes_reserved -= head->num_bytes;
4603 spin_unlock(&cache->space_info->lock);
H A Dsuper.c1692 list_for_each_entry(found, &fs_info->space_info, list) {
1763 if (!mixed && block_rsv->space_info->full &&
H A Dtree-log.c2552 spin_lock(&cache->space_info->lock);
2555 cache->space_info->bytes_reserved -= fs_info->nodesize;
2557 spin_unlock(&cache->space_info->lock);
H A Dvolumes.c3268 * Despite our system space_info having enough free space, we may not
5263 struct btrfs_space_info *space_info; local
5265 space_info = btrfs_find_space_info(fs_devices->fs_info, ctl->type);
5266 ASSERT(space_info);
5268 ctl->max_chunk_size = READ_ONCE(space_info->chunk_size);
H A Dioctl.c3073 list_for_each_entry(tmp, &fs_info->space_info, list) {
3092 * Global block reserve, exported as a space_info
3126 list_for_each_entry(tmp, &fs_info->space_info, list) {

Completed in 444 milliseconds