Lines Matching refs:fs_info
102 static u64 block_rsv_release_bytes(struct btrfs_fs_info *fs_info, in block_rsv_release_bytes() argument
150 btrfs_space_info_free_bytes_may_use(fs_info, in block_rsv_release_bytes()
180 void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info, in btrfs_init_metadata_block_rsv() argument
185 rsv->space_info = btrfs_find_space_info(fs_info, in btrfs_init_metadata_block_rsv()
189 struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info, in btrfs_alloc_block_rsv() argument
198 btrfs_init_metadata_block_rsv(fs_info, block_rsv, type); in btrfs_alloc_block_rsv()
202 void btrfs_free_block_rsv(struct btrfs_fs_info *fs_info, in btrfs_free_block_rsv() argument
207 btrfs_block_rsv_release(fs_info, rsv, (u64)-1, NULL); in btrfs_free_block_rsv()
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 int btrfs_cond_migrate_bytes(struct btrfs_fs_info *fs_info, in btrfs_cond_migrate_bytes() argument
329 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv; in btrfs_cond_migrate_bytes()
350 void btrfs_update_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_update_global_block_rsv() argument
352 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in btrfs_update_global_block_rsv()
362 num_bytes = btrfs_root_used(&fs_info->extent_root->root_item) + in btrfs_update_global_block_rsv()
363 btrfs_root_used(&fs_info->csum_root->root_item) + in btrfs_update_global_block_rsv()
364 btrfs_root_used(&fs_info->tree_root->root_item); in btrfs_update_global_block_rsv()
384 btrfs_calc_insert_metadata_size(fs_info, min_items)); in btrfs_update_global_block_rsv()
393 btrfs_space_info_update_bytes_may_use(fs_info, sinfo, in btrfs_update_global_block_rsv()
398 btrfs_space_info_update_bytes_may_use(fs_info, sinfo, in btrfs_update_global_block_rsv()
401 btrfs_try_granting_tickets(fs_info, sinfo); in btrfs_update_global_block_rsv()
415 void btrfs_init_global_block_rsv(struct btrfs_fs_info *fs_info) in btrfs_init_global_block_rsv() argument
419 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_SYSTEM); in btrfs_init_global_block_rsv()
420 fs_info->chunk_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
422 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA); in btrfs_init_global_block_rsv()
423 fs_info->global_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
424 fs_info->trans_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
425 fs_info->empty_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
426 fs_info->delayed_block_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
427 fs_info->delayed_refs_rsv.space_info = space_info; in btrfs_init_global_block_rsv()
433 if (!fs_info->extent_root || !fs_info->csum_root || in btrfs_init_global_block_rsv()
434 !fs_info->dev_root || !fs_info->chunk_root || !fs_info->tree_root) in btrfs_init_global_block_rsv()
437 fs_info->extent_root->block_rsv = &fs_info->delayed_refs_rsv; in btrfs_init_global_block_rsv()
438 fs_info->csum_root->block_rsv = &fs_info->delayed_refs_rsv; in btrfs_init_global_block_rsv()
439 fs_info->dev_root->block_rsv = &fs_info->global_block_rsv; in btrfs_init_global_block_rsv()
440 fs_info->tree_root->block_rsv = &fs_info->global_block_rsv; in btrfs_init_global_block_rsv()
441 if (fs_info->quota_root) in btrfs_init_global_block_rsv()
442 fs_info->quota_root->block_rsv = &fs_info->global_block_rsv; in btrfs_init_global_block_rsv()
443 fs_info->chunk_root->block_rsv = &fs_info->chunk_block_rsv; 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->csum_root && trans->adding_csums) || in get_block_rsv()
471 (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()