Lines Matching refs:fs_info

105 static u64 block_rsv_release_bytes(struct btrfs_fs_info *fs_info,  in block_rsv_release_bytes()  argument
153 btrfs_space_info_free_bytes_may_use(fs_info, in block_rsv_release_bytes()
183 void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info, in btrfs_init_metadata_block_rsv() argument
188 rsv->space_info = btrfs_find_space_info(fs_info, in btrfs_init_metadata_block_rsv()
192 struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info, in btrfs_alloc_block_rsv() argument
201 btrfs_init_metadata_block_rsv(fs_info, block_rsv, type); in btrfs_alloc_block_rsv()
205 void btrfs_free_block_rsv(struct btrfs_fs_info *fs_info, in btrfs_free_block_rsv() argument
210 btrfs_block_rsv_release(fs_info, rsv, (u64)-1, NULL); in btrfs_free_block_rsv()
214 int btrfs_block_rsv_add(struct btrfs_fs_info *fs_info, in btrfs_block_rsv_add() argument
223 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv, num_bytes, flush); in btrfs_block_rsv_add()
247 int btrfs_block_rsv_refill(struct btrfs_fs_info *fs_info, in btrfs_block_rsv_refill() argument
268 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv, num_bytes, flush); in btrfs_block_rsv_refill()
277 u64 btrfs_block_rsv_release(struct btrfs_fs_info *fs_info, in btrfs_block_rsv_release() argument
281 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv; in btrfs_block_rsv_release()
282 struct btrfs_block_rsv *delayed_rsv = &fs_info->delayed_refs_rsv; in btrfs_block_rsv_release()
297 return block_rsv_release_bytes(fs_info, block_rsv, target, num_bytes, in btrfs_block_rsv_release()
328 void btrfs_update_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_update_global_block_rsv() argument
330 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in btrfs_update_global_block_rsv()
333 u64 num_bytes = btrfs_root_used(&fs_info->tree_root->root_item); in btrfs_update_global_block_rsv()
344 read_lock(&fs_info->global_root_lock); in btrfs_update_global_block_rsv()
345 rbtree_postorder_for_each_entry_safe(root, tmp, &fs_info->global_root_tree, in btrfs_update_global_block_rsv()
354 read_unlock(&fs_info->global_root_lock); in btrfs_update_global_block_rsv()
368 btrfs_calc_insert_metadata_size(fs_info, min_items)); in btrfs_update_global_block_rsv()
377 btrfs_space_info_update_bytes_may_use(fs_info, sinfo, in btrfs_update_global_block_rsv()
382 btrfs_space_info_update_bytes_may_use(fs_info, sinfo, in btrfs_update_global_block_rsv()
385 btrfs_try_granting_tickets(fs_info, sinfo); in btrfs_update_global_block_rsv()
398 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_init_root_block_rsv() local
405 root->block_rsv = &fs_info->delayed_refs_rsv; in btrfs_init_root_block_rsv()
410 root->block_rsv = &fs_info->global_block_rsv; in btrfs_init_root_block_rsv()
413 root->block_rsv = &fs_info->chunk_block_rsv; in btrfs_init_root_block_rsv()
421 void btrfs_init_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_init_global_block_rsv() argument
425 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_SYSTEM); in btrfs_init_global_block_rsv()
426 fs_info->chunk_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
428 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA); in btrfs_init_global_block_rsv()
429 fs_info->global_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
430 fs_info->trans_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
431 fs_info->empty_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
432 fs_info->delayed_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
433 fs_info->delayed_refs_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
435 btrfs_update_global_block_rsv(fs_info); in btrfs_init_global_block_rsv()
438 void btrfs_release_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_release_global_block_rsv() argument
440 btrfs_block_rsv_release(fs_info, &fs_info->global_block_rsv, (u64)-1, in btrfs_release_global_block_rsv()
442 WARN_ON(fs_info->trans_block_rsv.size > 0); in btrfs_release_global_block_rsv()
443 WARN_ON(fs_info->trans_block_rsv.reserved > 0); in btrfs_release_global_block_rsv()
444 WARN_ON(fs_info->chunk_block_rsv.size > 0); in btrfs_release_global_block_rsv()
445 WARN_ON(fs_info->chunk_block_rsv.reserved > 0); in btrfs_release_global_block_rsv()
446 WARN_ON(fs_info->delayed_block_rsv.size > 0); in btrfs_release_global_block_rsv()
447 WARN_ON(fs_info->delayed_block_rsv.reserved > 0); in btrfs_release_global_block_rsv()
448 WARN_ON(fs_info->delayed_refs_rsv.reserved > 0); in btrfs_release_global_block_rsv()
449 WARN_ON(fs_info->delayed_refs_rsv.size > 0); in btrfs_release_global_block_rsv()
456 struct btrfs_fs_info *fs_info = root->fs_info; in get_block_rsv() local
460 (root == fs_info->uuid_root) || in get_block_rsv()
469 block_rsv = &fs_info->empty_block_rsv; in get_block_rsv()
478 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_use_block_rsv() local
480 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv; in btrfs_use_block_rsv()
498 btrfs_update_global_block_rsv(fs_info); in btrfs_use_block_rsv()
507 btrfs_test_opt(fs_info, ENOSPC_DEBUG)) { in btrfs_use_block_rsv()
517 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv, blocksize, in btrfs_use_block_rsv()
539 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv, blocksize, in btrfs_use_block_rsv()