Lines Matching +full:cache +full:- +full:block
1 /* SPDX-License-Identifier: GPL-2.0 */
6 #include "free-space-cache.h"
73 * If the free space extent count exceeds this number, convert the block
80 * block group back to extents.
101 /* Cache tracking stuff */
108 /* Free space cache stuff */
111 /* Block group cache stuff */
114 /* For block groups in the same raid type */
120 * List of struct btrfs_free_clusters for this block group.
125 /* For delayed block group creation or deletion of empty block groups */
128 /* For read-only block groups */
132 * When non-zero it means the block group's logical address and its
133 * device extents can not be reused for future block group allocations
135 * reused while some task is still using the block group after it was
136 * deleted - we want to make sure they can only be reused for new block
137 * groups after that task is done with the deleted block group.
148 /* For dirty block groups */
158 * block group's range is created (after it's added to its inode's
170 * This is to prevent races between block group relocation and nocow
179 * Does the block group need to be added to the free space tree?
185 * Number of extents in this block group used for swap files.
190 /* Record locked full stripes for RAID5/6 block group */
196 return (block_group->start + block_group->length); in btrfs_block_group_end()
204 * efficiency, so only proper data block groups are considered. in btrfs_is_block_group_data_only()
206 return (block_group->flags & BTRFS_BLOCK_GROUP_DATA) && in btrfs_is_block_group_data_only()
207 !(block_group->flags & BTRFS_BLOCK_GROUP_METADATA); in btrfs_is_block_group_data_only()
214 struct btrfs_fs_info *fs_info = block_group->fs_info; in btrfs_should_fragment_free_space()
217 block_group->flags & BTRFS_BLOCK_GROUP_METADATA) || in btrfs_should_fragment_free_space()
219 block_group->flags & BTRFS_BLOCK_GROUP_DATA); in btrfs_should_fragment_free_space()
228 struct btrfs_block_group *cache);
229 void btrfs_get_block_group(struct btrfs_block_group *cache);
230 void btrfs_put_block_group(struct btrfs_block_group *cache);
237 void btrfs_wait_block_group_cache_progress(struct btrfs_block_group *cache,
239 int btrfs_wait_block_group_cache_done(struct btrfs_block_group *cache);
240 int btrfs_cache_block_group(struct btrfs_block_group *cache,
244 struct btrfs_block_group *cache);
258 int btrfs_inc_block_group_ro(struct btrfs_block_group *cache,
260 void btrfs_dec_block_group_ro(struct btrfs_block_group *cache);
266 int btrfs_add_reserved_bytes(struct btrfs_block_group *cache,
268 void btrfs_free_reserved_bytes(struct btrfs_block_group *cache,
293 static inline int btrfs_block_group_done(struct btrfs_block_group *cache) in btrfs_block_group_done() argument
296 return cache->cached == BTRFS_CACHE_FINISHED || in btrfs_block_group_done()
297 cache->cached == BTRFS_CACHE_ERROR; in btrfs_block_group_done()
300 void btrfs_freeze_block_group(struct btrfs_block_group *cache);
301 void btrfs_unfreeze_block_group(struct btrfs_block_group *cache);