/linux-4.4.14/fs/btrfs/ |
H A D | delayed-inode.c | 558 src_rsv = trans->block_rsv; btrfs_delayed_item_reserve_metadata() 601 src_rsv = trans->block_rsv; btrfs_delayed_inode_reserve_metadata() 677 * block_rsv. This is to simplify people who don't normally have things btrfs_delayed_inode_reserve_metadata() 1168 struct btrfs_block_rsv *block_rsv; __btrfs_run_delayed_items() local 1180 block_rsv = trans->block_rsv; __btrfs_run_delayed_items() 1181 trans->block_rsv = &root->fs_info->delayed_block_rsv; __btrfs_run_delayed_items() 1204 trans->block_rsv = block_rsv; __btrfs_run_delayed_items() 1226 struct btrfs_block_rsv *block_rsv; btrfs_commit_inode_delayed_items() local 1247 block_rsv = trans->block_rsv; btrfs_commit_inode_delayed_items() 1248 trans->block_rsv = &delayed_node->root->fs_info->delayed_block_rsv; btrfs_commit_inode_delayed_items() 1254 trans->block_rsv = block_rsv; btrfs_commit_inode_delayed_items() 1264 struct btrfs_block_rsv *block_rsv; btrfs_commit_inode_delayed_inode() local 1291 block_rsv = trans->block_rsv; btrfs_commit_inode_delayed_inode() 1292 trans->block_rsv = &delayed_node->root->fs_info->delayed_block_rsv; btrfs_commit_inode_delayed_inode() 1303 trans->block_rsv = block_rsv; btrfs_commit_inode_delayed_inode() 1339 struct btrfs_block_rsv *block_rsv; btrfs_async_run_delayed_root() local 1364 block_rsv = trans->block_rsv; btrfs_async_run_delayed_root() 1365 trans->block_rsv = &root->fs_info->delayed_block_rsv; btrfs_async_run_delayed_root() 1369 trans->block_rsv = block_rsv; btrfs_async_run_delayed_root()
|
H A D | extent-tree.c | 109 static int block_rsv_use_bytes(struct btrfs_block_rsv *block_rsv, 4558 struct btrfs_block_rsv *block_rsv; shrink_delalloc() local 4574 block_rsv = &root->fs_info->delalloc_block_rsv; shrink_delalloc() 4575 space_info = block_rsv->space_info; shrink_delalloc() 4858 * reserve_metadata_bytes - try to reserve bytes from the block_rsv's space 4860 * @block_rsv - the block_rsv we're allocating for 4865 * with the block_rsv. If there is not enough space it will make an attempt to 4872 struct btrfs_block_rsv *block_rsv, reserve_metadata_bytes() 4876 struct btrfs_space_info *space_info = block_rsv->space_info; reserve_metadata_bytes() 5010 if (block_rsv != global_rsv && reserve_metadata_bytes() 5031 struct btrfs_block_rsv *block_rsv = NULL; get_block_rsv() local 5036 block_rsv = trans->block_rsv; get_block_rsv() 5038 if (!block_rsv) get_block_rsv() 5039 block_rsv = root->block_rsv; get_block_rsv() 5041 if (!block_rsv) get_block_rsv() 5042 block_rsv = &root->fs_info->empty_block_rsv; get_block_rsv() 5044 return block_rsv; get_block_rsv() 5047 static int block_rsv_use_bytes(struct btrfs_block_rsv *block_rsv, block_rsv_use_bytes() argument 5051 spin_lock(&block_rsv->lock); block_rsv_use_bytes() 5052 if (block_rsv->reserved >= num_bytes) { block_rsv_use_bytes() 5053 block_rsv->reserved -= num_bytes; block_rsv_use_bytes() 5054 if (block_rsv->reserved < block_rsv->size) block_rsv_use_bytes() 5055 block_rsv->full = 0; block_rsv_use_bytes() 5058 spin_unlock(&block_rsv->lock); block_rsv_use_bytes() 5062 static void block_rsv_add_bytes(struct btrfs_block_rsv *block_rsv, block_rsv_add_bytes() argument 5065 spin_lock(&block_rsv->lock); block_rsv_add_bytes() 5066 block_rsv->reserved += num_bytes; block_rsv_add_bytes() 5068 block_rsv->size += num_bytes; block_rsv_add_bytes() 5069 else if (block_rsv->reserved >= block_rsv->size) block_rsv_add_bytes() 5070 block_rsv->full = 1; block_rsv_add_bytes() 5071 spin_unlock(&block_rsv->lock); block_rsv_add_bytes() 5100 struct btrfs_block_rsv *block_rsv, block_rsv_release_bytes() 5103 struct btrfs_space_info *space_info = block_rsv->space_info; block_rsv_release_bytes() 5105 spin_lock(&block_rsv->lock); block_rsv_release_bytes() 5107 num_bytes = block_rsv->size; block_rsv_release_bytes() 5108 block_rsv->size -= num_bytes; block_rsv_release_bytes() 5109 if (block_rsv->reserved >= block_rsv->size) { block_rsv_release_bytes() 5110 num_bytes = block_rsv->reserved - block_rsv->size; block_rsv_release_bytes() 5111 block_rsv->reserved = block_rsv->size; block_rsv_release_bytes() 5112 block_rsv->full = 1; block_rsv_release_bytes() 5116 spin_unlock(&block_rsv->lock); block_rsv_release_bytes() 5166 struct btrfs_block_rsv *block_rsv; btrfs_alloc_block_rsv() local 5169 block_rsv = kmalloc(sizeof(*block_rsv), GFP_NOFS); btrfs_alloc_block_rsv() 5170 if (!block_rsv) btrfs_alloc_block_rsv() 5173 btrfs_init_block_rsv(block_rsv, type); btrfs_alloc_block_rsv() 5174 block_rsv->space_info = __find_space_info(fs_info, btrfs_alloc_block_rsv() 5176 return block_rsv; btrfs_alloc_block_rsv() 5194 struct btrfs_block_rsv *block_rsv, u64 num_bytes, btrfs_block_rsv_add() 5202 ret = reserve_metadata_bytes(root, block_rsv, num_bytes, flush); btrfs_block_rsv_add() 5204 block_rsv_add_bytes(block_rsv, num_bytes, 1); btrfs_block_rsv_add() 5212 struct btrfs_block_rsv *block_rsv, int min_factor) btrfs_block_rsv_check() 5217 if (!block_rsv) btrfs_block_rsv_check() 5220 spin_lock(&block_rsv->lock); btrfs_block_rsv_check() 5221 num_bytes = div_factor(block_rsv->size, min_factor); btrfs_block_rsv_check() 5222 if (block_rsv->reserved >= num_bytes) btrfs_block_rsv_check() 5224 spin_unlock(&block_rsv->lock); btrfs_block_rsv_check() 5230 struct btrfs_block_rsv *block_rsv, u64 min_reserved, btrfs_block_rsv_refill() 5236 if (!block_rsv) btrfs_block_rsv_refill() 5239 spin_lock(&block_rsv->lock); btrfs_block_rsv_refill() 5241 if (block_rsv->reserved >= num_bytes) btrfs_block_rsv_refill() 5244 num_bytes -= block_rsv->reserved; btrfs_block_rsv_refill() 5245 spin_unlock(&block_rsv->lock); btrfs_block_rsv_refill() 5250 ret = reserve_metadata_bytes(root, block_rsv, num_bytes, flush); btrfs_block_rsv_refill() 5252 block_rsv_add_bytes(block_rsv, num_bytes, 0); btrfs_block_rsv_refill() 5267 struct btrfs_block_rsv *block_rsv, btrfs_block_rsv_release() 5271 if (global_rsv == block_rsv || btrfs_block_rsv_release() 5272 block_rsv->space_info != global_rsv->space_info) btrfs_block_rsv_release() 5274 block_rsv_release_bytes(root->fs_info, block_rsv, global_rsv, btrfs_block_rsv_release() 5315 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; update_global_block_rsv() local 5316 struct btrfs_space_info *sinfo = block_rsv->space_info; update_global_block_rsv() 5322 spin_lock(&block_rsv->lock); update_global_block_rsv() 5324 block_rsv->size = min_t(u64, num_bytes, 512 * 1024 * 1024); update_global_block_rsv() 5332 block_rsv->reserved += num_bytes; update_global_block_rsv() 5338 if (block_rsv->reserved >= block_rsv->size) { update_global_block_rsv() 5339 num_bytes = block_rsv->reserved - block_rsv->size; update_global_block_rsv() 5343 block_rsv->reserved = block_rsv->size; update_global_block_rsv() 5344 block_rsv->full = 1; update_global_block_rsv() 5347 spin_unlock(&block_rsv->lock); update_global_block_rsv() 5365 fs_info->extent_root->block_rsv = &fs_info->global_block_rsv; init_global_block_rsv() 5366 fs_info->csum_root->block_rsv = &fs_info->global_block_rsv; init_global_block_rsv() 5367 fs_info->dev_root->block_rsv = &fs_info->global_block_rsv; init_global_block_rsv() 5368 fs_info->tree_root->block_rsv = &fs_info->global_block_rsv; init_global_block_rsv() 5370 fs_info->quota_root->block_rsv = &fs_info->global_block_rsv; init_global_block_rsv() 5371 fs_info->chunk_root->block_rsv = &fs_info->chunk_block_rsv; init_global_block_rsv() 5393 if (!trans->block_rsv) btrfs_trans_release_metadata() 5401 btrfs_block_rsv_release(root, trans->block_rsv, trans->bytes_reserved); btrfs_trans_release_metadata() 5600 struct btrfs_block_rsv *block_rsv = &root->fs_info->delalloc_block_rsv; btrfs_delalloc_reserve_metadata() local 5664 ret = reserve_metadata_bytes(root, block_rsv, to_reserve, flush); btrfs_delalloc_reserve_metadata() 5685 block_rsv_add_bytes(block_rsv, to_reserve, 1); btrfs_delalloc_reserve_metadata() 5744 btrfs_block_rsv_release(root, block_rsv, to_free); btrfs_delalloc_reserve_metadata() 7868 struct btrfs_block_rsv *block_rsv; use_block_rsv() local 7873 block_rsv = get_block_rsv(trans, root); use_block_rsv() 7875 if (unlikely(block_rsv->size == 0)) use_block_rsv() 7878 ret = block_rsv_use_bytes(block_rsv, blocksize); use_block_rsv() 7880 return block_rsv; use_block_rsv() 7882 if (block_rsv->failfast) use_block_rsv() 7885 if (block_rsv->type == BTRFS_BLOCK_RSV_GLOBAL && !global_updated) { use_block_rsv() 7900 ret = reserve_metadata_bytes(root, block_rsv, blocksize, use_block_rsv() 7903 return block_rsv; use_block_rsv() 7909 if (block_rsv->type != BTRFS_BLOCK_RSV_GLOBAL && use_block_rsv() 7910 block_rsv->space_info == global_rsv->space_info) { use_block_rsv() 7919 struct btrfs_block_rsv *block_rsv, u32 blocksize) unuse_block_rsv() 7921 block_rsv_add_bytes(block_rsv, blocksize, 0); unuse_block_rsv() 7922 block_rsv_release_bytes(fs_info, block_rsv, NULL, 0); unuse_block_rsv() 7936 struct btrfs_block_rsv *block_rsv; btrfs_alloc_tree_block() local 7953 block_rsv = use_block_rsv(trans, root, blocksize); btrfs_alloc_tree_block() 7954 if (IS_ERR(block_rsv)) btrfs_alloc_tree_block() 7955 return ERR_CAST(block_rsv); btrfs_alloc_tree_block() 8011 unuse_block_rsv(root->fs_info, block_rsv, blocksize); btrfs_alloc_tree_block() 8782 struct btrfs_block_rsv *block_rsv, int update_ref, btrfs_drop_snapshot() 8817 if (block_rsv) btrfs_drop_snapshot() 8818 trans->block_rsv = block_rsv; btrfs_drop_snapshot() 8935 if (block_rsv) btrfs_drop_snapshot() 8936 trans->block_rsv = block_rsv; btrfs_drop_snapshot() 4871 reserve_metadata_bytes(struct btrfs_root *root, struct btrfs_block_rsv *block_rsv, u64 orig_bytes, enum btrfs_reserve_flush_enum flush) reserve_metadata_bytes() argument 5099 block_rsv_release_bytes(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, struct btrfs_block_rsv *dest, u64 num_bytes) block_rsv_release_bytes() argument 5193 btrfs_block_rsv_add(struct btrfs_root *root, struct btrfs_block_rsv *block_rsv, u64 num_bytes, enum btrfs_reserve_flush_enum flush) btrfs_block_rsv_add() argument 5211 btrfs_block_rsv_check(struct btrfs_root *root, struct btrfs_block_rsv *block_rsv, int min_factor) btrfs_block_rsv_check() argument 5229 btrfs_block_rsv_refill(struct btrfs_root *root, struct btrfs_block_rsv *block_rsv, u64 min_reserved, enum btrfs_reserve_flush_enum flush) btrfs_block_rsv_refill() argument 5266 btrfs_block_rsv_release(struct btrfs_root *root, struct btrfs_block_rsv *block_rsv, u64 num_bytes) btrfs_block_rsv_release() argument 7918 unuse_block_rsv(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, u32 blocksize) unuse_block_rsv() argument 8781 btrfs_drop_snapshot(struct btrfs_root *root, struct btrfs_block_rsv *block_rsv, int update_ref, int for_reloc) btrfs_drop_snapshot() argument
|
H A D | inode-map.c | 422 rsv = trans->block_rsv; btrfs_save_ino_cache() 423 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_save_ino_cache() 434 ret = btrfs_block_rsv_add(root, trans->block_rsv, btrfs_save_ino_cache() 509 btrfs_block_rsv_release(root, trans->block_rsv, trans->bytes_reserved); btrfs_save_ino_cache() 511 trans->block_rsv = rsv; btrfs_save_ino_cache()
|
H A D | sysfs.c | 240 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; global_rsv_size_show() local 241 return btrfs_show_u64(&block_rsv->size, &block_rsv->lock, buf); global_rsv_size_show() 249 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; global_rsv_reserved_show() local 250 return btrfs_show_u64(&block_rsv->reserved, &block_rsv->lock, buf); global_rsv_reserved_show()
|
H A D | transaction.c | 472 h->orig_rsv = h->block_rsv; start_transaction() 473 h->block_rsv = NULL; start_transaction() 563 h->block_rsv = &root->fs_info->trans_block_rsv; start_transaction() 621 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_start_transaction_fallback_global_rsv() 803 trans->block_rsv = trans->orig_rsv; __btrfs_end_transaction() 808 trans->block_rsv = NULL; __btrfs_end_transaction() 829 trans->block_rsv = NULL; __btrfs_end_transaction() 1348 &pending->block_rsv, create_pending_snapshot() 1359 rsv = trans->block_rsv; create_pending_snapshot() 1360 trans->block_rsv = &pending->block_rsv; create_pending_snapshot() 1361 trans->bytes_reserved = trans->block_rsv->reserved; create_pending_snapshot() 1559 trans->block_rsv = rsv; create_pending_snapshot() 1834 trans->block_rsv = NULL; btrfs_commit_transaction() 2184 trans->block_rsv = NULL; btrfs_commit_transaction()
|
H A D | props.c | 323 ret = btrfs_block_rsv_add(root, trans->block_rsv, inherit_props() 329 btrfs_block_rsv_release(root, trans->block_rsv, num_bytes); inherit_props()
|
H A D | transaction.h | 116 struct btrfs_block_rsv *block_rsv; member in struct:btrfs_trans_handle 143 struct btrfs_block_rsv block_rsv; member in struct:btrfs_pending_snapshot
|
H A D | relocation.c | 165 struct btrfs_block_rsv *block_rsv; member in struct:reloc_control 1461 rsv = trans->block_rsv; btrfs_init_reloc_root() 1462 trans->block_rsv = rc->block_rsv; btrfs_init_reloc_root() 1467 trans->block_rsv = rsv; btrfs_init_reloc_root() 2167 ret = btrfs_block_rsv_refill(root, rc->block_rsv, min_reserved, merge_reloc_root() 2179 trans->block_rsv = rc->block_rsv; merge_reloc_root() 2283 ret = btrfs_block_rsv_add(root, rc->block_rsv, num_bytes, prepare_to_merge() 2293 rc->block_rsv, num_bytes); prepare_to_merge() 2301 rc->block_rsv, num_bytes); prepare_to_merge() 2404 ret = btrfs_drop_snapshot(reloc_root, rc->block_rsv, 0, 1); merge_reloc_roots() 2603 trans->block_rsv = rc->block_rsv; reserve_metadata_space() 2605 ret = btrfs_block_rsv_refill(root, rc->block_rsv, num_bytes, reserve_metadata_space() 2614 * only one thread can access block_rsv at this point, reserve_metadata_space() 2615 * so we don't need hold lock to protect block_rsv. reserve_metadata_space() 2620 rc->block_rsv->size = tmp + rc->extent_root->nodesize * reserve_metadata_space() 3873 rc->block_rsv = btrfs_alloc_block_rsv(rc->extent_root, prepare_to_relocate() 3875 if (!rc->block_rsv) prepare_to_relocate() 3884 rc->block_rsv->size = rc->extent_root->nodesize * prepare_to_relocate() 3931 rc->block_rsv, rc->block_rsv->size, relocate_block_group() 4079 btrfs_block_rsv_release(rc->extent_root, rc->block_rsv, (u64)-1); relocate_block_group() 4087 btrfs_block_rsv_release(rc->extent_root, rc->block_rsv, (u64)-1); relocate_block_group() 4096 btrfs_free_block_rsv(rc->extent_root, rc->block_rsv); relocate_block_group() 4644 ret = btrfs_block_rsv_migrate(&pending->block_rsv, btrfs_reloc_post_snapshot() 4645 rc->block_rsv, btrfs_reloc_post_snapshot()
|
H A D | ioctl.c | 445 struct btrfs_block_rsv block_rsv; create_subvol() local 467 btrfs_init_block_rsv(&block_rsv, BTRFS_BLOCK_RSV_TEMP); create_subvol() 472 ret = btrfs_subvolume_reserve_metadata(root, &block_rsv, create_subvol() 480 btrfs_subvolume_release_metadata(root, &block_rsv, create_subvol() 484 trans->block_rsv = &block_rsv; create_subvol() 485 trans->bytes_reserved = block_rsv.size; create_subvol() 608 trans->block_rsv = NULL; create_subvol() 610 btrfs_subvolume_release_metadata(root, &block_rsv, qgroup_reserved); create_subvol() 678 btrfs_init_block_rsv(&pending_snapshot->block_rsv, create_snapshot() 689 &pending_snapshot->block_rsv, 8, create_snapshot() 742 &pending_snapshot->block_rsv, create_snapshot() 2341 struct btrfs_block_rsv block_rsv; btrfs_ioctl_snap_destroy() local 2453 btrfs_init_block_rsv(&block_rsv, BTRFS_BLOCK_RSV_TEMP); btrfs_ioctl_snap_destroy() 2458 err = btrfs_subvolume_reserve_metadata(root, &block_rsv, btrfs_ioctl_snap_destroy() 2468 trans->block_rsv = &block_rsv; btrfs_ioctl_snap_destroy() 2469 trans->bytes_reserved = block_rsv.size; btrfs_ioctl_snap_destroy() 2520 trans->block_rsv = NULL; btrfs_ioctl_snap_destroy() 2527 btrfs_subvolume_release_metadata(root, &block_rsv, qgroup_reserved); btrfs_ioctl_snap_destroy() 4274 struct btrfs_block_rsv *block_rsv = &root->fs_info->global_block_rsv; btrfs_ioctl_space_info() local 4276 spin_lock(&block_rsv->lock); btrfs_ioctl_space_info() 4277 space.total_bytes = block_rsv->size; btrfs_ioctl_space_info() 4278 space.used_bytes = block_rsv->size - block_rsv->reserved; btrfs_ioctl_space_info() 4279 spin_unlock(&block_rsv->lock); btrfs_ioctl_space_info()
|
H A D | inode.c | 278 trans->block_rsv = &root->fs_info->delalloc_block_rsv; cow_file_range_inline() 1273 trans->block_rsv = &root->fs_info->delalloc_block_rsv; run_delalloc_nocow() 2868 trans->block_rsv = &root->fs_info->delalloc_block_rsv; btrfs_finish_ordered_io() 2903 trans->block_rsv = &root->fs_info->delalloc_block_rsv; btrfs_finish_ordered_io() 3159 * files in the subvolume, it removes orphan item and frees block_rsv 3165 struct btrfs_block_rsv *block_rsv; btrfs_orphan_commit_root() local 3183 block_rsv = root->orphan_block_rsv; btrfs_orphan_commit_root() 3198 if (block_rsv) { btrfs_orphan_commit_root() 3199 WARN_ON(block_rsv->size > 0); btrfs_orphan_commit_root() 3200 btrfs_free_block_rsv(root, block_rsv); btrfs_orphan_commit_root() 3214 struct btrfs_block_rsv *block_rsv = NULL; btrfs_orphan_add() local 3220 block_rsv = btrfs_alloc_block_rsv(root, BTRFS_BLOCK_RSV_TEMP); btrfs_orphan_add() 3221 if (!block_rsv) btrfs_orphan_add() 3227 root->orphan_block_rsv = block_rsv; btrfs_orphan_add() 3228 } else if (block_rsv) { btrfs_orphan_add() 3229 btrfs_free_block_rsv(root, block_rsv); btrfs_orphan_add() 3230 block_rsv = NULL; btrfs_orphan_add() 5268 trans->block_rsv = rsv; btrfs_evict_inode() 5274 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_evict_inode() 5287 trans->block_rsv = root->orphan_block_rsv; btrfs_evict_inode() 5293 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_evict_inode() 8932 trans->block_rsv = rsv; btrfs_truncate() 8943 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_truncate() 8963 trans->block_rsv = rsv; btrfs_truncate() 8967 trans->block_rsv = root->orphan_block_rsv; btrfs_truncate() 8974 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_truncate()
|
H A D | super.c | 1976 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; btrfs_statfs() local 2017 spin_lock(&block_rsv->lock); 2018 buf->f_bfree -= block_rsv->size >> bits; 2019 spin_unlock(&block_rsv->lock); 2043 if (total_free_meta - thresh < block_rsv->size)
|
H A D | file.c | 2458 trans->block_rsv = rsv; btrfs_punch_hole() 2469 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_punch_hole() 2501 trans->block_rsv = rsv; btrfs_punch_hole() 2517 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_punch_hole() 2551 trans->block_rsv = &root->fs_info->trans_block_rsv; btrfs_punch_hole()
|
H A D | ctree.h | 1867 struct btrfs_block_rsv *block_rsv; member in struct:btrfs_root 3537 struct btrfs_block_rsv *block_rsv, u64 num_bytes, 3540 struct btrfs_block_rsv *block_rsv, int min_factor); 3542 struct btrfs_block_rsv *block_rsv, u64 min_reserved, 3551 struct btrfs_block_rsv *block_rsv, 3703 struct btrfs_block_rsv *block_rsv,
|
H A D | disk-io.c | 1236 root->block_rsv = NULL; __setup_root()
|