Lines Matching refs:fs_info

104 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->space_info, in btrfs_block_rsv_add()
245 int btrfs_block_rsv_refill(struct btrfs_fs_info *fs_info, in btrfs_block_rsv_refill() argument
264 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv->space_info, in btrfs_block_rsv_refill()
274 u64 btrfs_block_rsv_release(struct btrfs_fs_info *fs_info, in btrfs_block_rsv_release() argument
278 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv; in btrfs_block_rsv_release()
279 struct btrfs_block_rsv *delayed_rsv = &fs_info->delayed_refs_rsv; in btrfs_block_rsv_release()
294 return block_rsv_release_bytes(fs_info, block_rsv, target, num_bytes, in btrfs_block_rsv_release()
325 void btrfs_update_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_update_global_block_rsv() argument
327 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in btrfs_update_global_block_rsv()
330 u64 num_bytes = btrfs_root_used(&fs_info->tree_root->root_item); in btrfs_update_global_block_rsv()
341 read_lock(&fs_info->global_root_lock); in btrfs_update_global_block_rsv()
342 rbtree_postorder_for_each_entry_safe(root, tmp, &fs_info->global_root_tree, in btrfs_update_global_block_rsv()
351 read_unlock(&fs_info->global_root_lock); in btrfs_update_global_block_rsv()
353 if (btrfs_fs_compat_ro(fs_info, BLOCK_GROUP_TREE)) { in btrfs_update_global_block_rsv()
354 num_bytes += btrfs_root_used(&fs_info->block_group_root->root_item); in btrfs_update_global_block_rsv()
358 if (btrfs_fs_incompat(fs_info, RAID_STRIPE_TREE)) { in btrfs_update_global_block_rsv()
359 num_bytes += btrfs_root_used(&fs_info->stripe_root->root_item); in btrfs_update_global_block_rsv()
375 btrfs_calc_insert_metadata_size(fs_info, min_items) + in btrfs_update_global_block_rsv()
376 btrfs_calc_delayed_ref_bytes(fs_info, in btrfs_update_global_block_rsv()
386 btrfs_space_info_update_bytes_may_use(fs_info, sinfo, in btrfs_update_global_block_rsv()
391 btrfs_space_info_update_bytes_may_use(fs_info, sinfo, in btrfs_update_global_block_rsv()
394 btrfs_try_granting_tickets(fs_info, sinfo); in btrfs_update_global_block_rsv()
407 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_init_root_block_rsv() local
415 root->block_rsv = &fs_info->delayed_refs_rsv; in btrfs_init_root_block_rsv()
420 root->block_rsv = &fs_info->global_block_rsv; in btrfs_init_root_block_rsv()
423 root->block_rsv = &fs_info->chunk_block_rsv; in btrfs_init_root_block_rsv()
431 void btrfs_init_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_init_global_block_rsv() argument
435 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_SYSTEM); in btrfs_init_global_block_rsv()
436 fs_info->chunk_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
438 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA); in btrfs_init_global_block_rsv()
439 fs_info->global_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
440 fs_info->trans_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
441 fs_info->empty_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
442 fs_info->delayed_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
443 fs_info->delayed_refs_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
445 btrfs_update_global_block_rsv(fs_info); in btrfs_init_global_block_rsv()
448 void btrfs_release_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_release_global_block_rsv() argument
450 btrfs_block_rsv_release(fs_info, &fs_info->global_block_rsv, (u64)-1, in btrfs_release_global_block_rsv()
452 WARN_ON(fs_info->trans_block_rsv.size > 0); in btrfs_release_global_block_rsv()
453 WARN_ON(fs_info->trans_block_rsv.reserved > 0); in btrfs_release_global_block_rsv()
454 WARN_ON(fs_info->chunk_block_rsv.size > 0); in btrfs_release_global_block_rsv()
455 WARN_ON(fs_info->chunk_block_rsv.reserved > 0); in btrfs_release_global_block_rsv()
456 WARN_ON(fs_info->delayed_block_rsv.size > 0); in btrfs_release_global_block_rsv()
457 WARN_ON(fs_info->delayed_block_rsv.reserved > 0); in btrfs_release_global_block_rsv()
458 WARN_ON(fs_info->delayed_refs_rsv.reserved > 0); in btrfs_release_global_block_rsv()
459 WARN_ON(fs_info->delayed_refs_rsv.size > 0); in btrfs_release_global_block_rsv()
466 struct btrfs_fs_info *fs_info = root->fs_info; in get_block_rsv() local
470 (root == fs_info->uuid_root) || in get_block_rsv()
478 block_rsv = &fs_info->empty_block_rsv; in get_block_rsv()
487 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_use_block_rsv() local
489 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv; in btrfs_use_block_rsv()
507 btrfs_update_global_block_rsv(fs_info); in btrfs_use_block_rsv()
516 btrfs_test_opt(fs_info, ENOSPC_DEBUG)) { in btrfs_use_block_rsv()
526 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv->space_info, in btrfs_use_block_rsv()
548 ret = btrfs_reserve_metadata_bytes(fs_info, block_rsv->space_info, blocksize, in btrfs_use_block_rsv()
556 int btrfs_check_trunc_cache_free_space(const struct btrfs_fs_info *fs_info, in btrfs_check_trunc_cache_free_space() argument
563 needed_bytes = btrfs_calc_insert_metadata_size(fs_info, 1) + in btrfs_check_trunc_cache_free_space()
564 btrfs_calc_metadata_size(fs_info, 1); in btrfs_check_trunc_cache_free_space()