Lines Matching refs:fs_info
38 * successful we subtract fs_info->nodesize from ->reserved.
102 static u64 block_rsv_release_bytes(struct btrfs_fs_info *fs_info,
151 btrfs_space_info_free_bytes_may_use(fs_info,
181 void btrfs_init_metadata_block_rsv(struct btrfs_fs_info *fs_info,
186 rsv->space_info = btrfs_find_space_info(fs_info,
190 struct btrfs_block_rsv *btrfs_alloc_block_rsv(struct btrfs_fs_info *fs_info,
199 btrfs_init_metadata_block_rsv(fs_info, block_rsv, type);
203 void btrfs_free_block_rsv(struct btrfs_fs_info *fs_info,
208 btrfs_block_rsv_release(fs_info, rsv, (u64)-1, NULL);
275 u64 btrfs_block_rsv_release(struct btrfs_fs_info *fs_info,
279 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv;
280 struct btrfs_block_rsv *delayed_rsv = &fs_info->delayed_refs_rsv;
295 return block_rsv_release_bytes(fs_info, block_rsv, target, num_bytes,
326 int btrfs_cond_migrate_bytes(struct btrfs_fs_info *fs_info,
330 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv;
351 void btrfs_update_global_block_rsv(struct btrfs_fs_info *fs_info)
353 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv;
363 num_bytes = btrfs_root_used(&fs_info->extent_root->root_item) +
364 btrfs_root_used(&fs_info->csum_root->root_item) +
365 btrfs_root_used(&fs_info->tree_root->root_item);
385 btrfs_calc_insert_metadata_size(fs_info, min_items));
394 btrfs_space_info_update_bytes_may_use(fs_info, sinfo,
399 btrfs_space_info_update_bytes_may_use(fs_info, sinfo,
402 btrfs_try_granting_tickets(fs_info, sinfo);
416 void btrfs_init_global_block_rsv(struct btrfs_fs_info *fs_info)
420 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_SYSTEM);
421 fs_info->chunk_block_rsv.space_info = space_info;
423 space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA);
424 fs_info->global_block_rsv.space_info = space_info;
425 fs_info->trans_block_rsv.space_info = space_info;
426 fs_info->empty_block_rsv.space_info = space_info;
427 fs_info->delayed_block_rsv.space_info = space_info;
428 fs_info->delayed_refs_rsv.space_info = space_info;
430 fs_info->extent_root->block_rsv = &fs_info->delayed_refs_rsv;
431 fs_info->csum_root->block_rsv = &fs_info->delayed_refs_rsv;
432 fs_info->dev_root->block_rsv = &fs_info->global_block_rsv;
433 fs_info->tree_root->block_rsv = &fs_info->global_block_rsv;
434 if (fs_info->quota_root)
435 fs_info->quota_root->block_rsv = &fs_info->global_block_rsv;
436 fs_info->chunk_root->block_rsv = &fs_info->chunk_block_rsv;
438 btrfs_update_global_block_rsv(fs_info);
441 void btrfs_release_global_block_rsv(struct btrfs_fs_info *fs_info)
443 btrfs_block_rsv_release(fs_info, &fs_info->global_block_rsv, (u64)-1,
445 WARN_ON(fs_info->trans_block_rsv.size > 0);
446 WARN_ON(fs_info->trans_block_rsv.reserved > 0);
447 WARN_ON(fs_info->chunk_block_rsv.size > 0);
448 WARN_ON(fs_info->chunk_block_rsv.reserved > 0);
449 WARN_ON(fs_info->delayed_block_rsv.size > 0);
450 WARN_ON(fs_info->delayed_block_rsv.reserved > 0);
451 WARN_ON(fs_info->delayed_refs_rsv.reserved > 0);
452 WARN_ON(fs_info->delayed_refs_rsv.size > 0);
459 struct btrfs_fs_info *fs_info = root->fs_info;
463 (root == fs_info->csum_root && trans->adding_csums) ||
464 (root == fs_info->uuid_root))
471 block_rsv = &fs_info->empty_block_rsv;
480 struct btrfs_fs_info *fs_info = root->fs_info;
482 struct btrfs_block_rsv *global_rsv = &fs_info->global_block_rsv;
500 btrfs_update_global_block_rsv(fs_info);
509 btrfs_test_opt(fs_info, ENOSPC_DEBUG)) {