/kernel/linux/linux-5.10/fs/btrfs/ |
H A D | block-rsv.c | 13 * Think of block_rsv's as buckets for logically grouped metadata 14 * reservations. Each block_rsv has a ->size and a ->reserved. ->size is 36 * to determine the appropriate block_rsv to use, and then verify that 103 struct btrfs_block_rsv *block_rsv, in block_rsv_release_bytes() 107 struct btrfs_space_info *space_info = block_rsv->space_info; in block_rsv_release_bytes() 111 spin_lock(&block_rsv->lock); in block_rsv_release_bytes() 113 num_bytes = block_rsv->size; in block_rsv_release_bytes() 114 qgroup_to_release = block_rsv->qgroup_rsv_size; in block_rsv_release_bytes() 116 block_rsv->size -= num_bytes; in block_rsv_release_bytes() 117 if (block_rsv in block_rsv_release_bytes() 102 block_rsv_release_bytes(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, struct btrfs_block_rsv *dest, u64 num_bytes, u64 *qgroup_to_release_ret) block_rsv_release_bytes() argument 193 struct btrfs_block_rsv *block_rsv; btrfs_alloc_block_rsv() local 212 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 228 btrfs_block_rsv_check(struct btrfs_block_rsv *block_rsv, int min_factor) btrfs_block_rsv_check() argument 245 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 275 btrfs_block_rsv_release(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, u64 num_bytes, u64 *qgroup_to_release) btrfs_block_rsv_release() argument 299 btrfs_block_rsv_use_bytes(struct btrfs_block_rsv *block_rsv, u64 num_bytes) btrfs_block_rsv_use_bytes() argument 314 btrfs_block_rsv_add_bytes(struct btrfs_block_rsv *block_rsv, u64 num_bytes, bool update_size) btrfs_block_rsv_add_bytes() argument 353 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; btrfs_update_global_block_rsv() local 460 struct btrfs_block_rsv *block_rsv = NULL; get_block_rsv() local 481 struct btrfs_block_rsv *block_rsv; btrfs_use_block_rsv() local [all...] |
H A D | block-rsv.h | 61 struct btrfs_block_rsv *block_rsv, u64 num_bytes, 63 int btrfs_block_rsv_check(struct btrfs_block_rsv *block_rsv, int min_factor); 65 struct btrfs_block_rsv *block_rsv, u64 min_reserved, 70 int btrfs_block_rsv_use_bytes(struct btrfs_block_rsv *block_rsv, u64 num_bytes); 74 void btrfs_block_rsv_add_bytes(struct btrfs_block_rsv *block_rsv, 77 struct btrfs_block_rsv *block_rsv, 86 struct btrfs_block_rsv *block_rsv, in btrfs_unuse_block_rsv() 89 btrfs_block_rsv_add_bytes(block_rsv, blocksize, false); in btrfs_unuse_block_rsv() 90 btrfs_block_rsv_release(fs_info, block_rsv, 0, NULL); in btrfs_unuse_block_rsv() 85 btrfs_unuse_block_rsv(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, u32 blocksize) btrfs_unuse_block_rsv() argument
|
H A D | delalloc-space.c | 74 * We keep a per-inode block_rsv in order to make it easier to keep track of 207 struct btrfs_block_rsv *block_rsv = &inode->block_rsv; in btrfs_inode_rsv_release() local 212 * Since we statically set the block_rsv->size we just want to say we in btrfs_inode_rsv_release() 216 released = btrfs_block_rsv_release(fs_info, block_rsv, 0, in btrfs_inode_rsv_release() 231 struct btrfs_block_rsv *block_rsv = &inode->block_rsv; in btrfs_calculate_inode_block_rsv_size() local 261 spin_lock(&block_rsv->lock); in btrfs_calculate_inode_block_rsv_size() 262 block_rsv->size = reserve_size; in btrfs_calculate_inode_block_rsv_size() 263 block_rsv in btrfs_calculate_inode_block_rsv_size() 290 struct btrfs_block_rsv *block_rsv = &inode->block_rsv; btrfs_delalloc_reserve_metadata() local [all...] |
H A D | delayed-inode.c | 561 src_rsv = trans->block_rsv; in btrfs_delayed_item_reserve_metadata() 614 src_rsv = trans->block_rsv; in btrfs_delayed_inode_reserve_metadata() 1154 struct btrfs_block_rsv *block_rsv; in __btrfs_run_delayed_items() local 1166 block_rsv = trans->block_rsv; in __btrfs_run_delayed_items() 1167 trans->block_rsv = &fs_info->delayed_block_rsv; in __btrfs_run_delayed_items() 1203 trans->block_rsv = block_rsv; in __btrfs_run_delayed_items() 1223 struct btrfs_block_rsv *block_rsv; in btrfs_commit_inode_delayed_items() local 1244 block_rsv in btrfs_commit_inode_delayed_items() 1262 struct btrfs_block_rsv *block_rsv; btrfs_commit_inode_delayed_inode() local 1337 struct btrfs_block_rsv *block_rsv; btrfs_async_run_delayed_root() local [all...] |
H A D | transaction.c | 584 h->orig_rsv = h->block_rsv; in start_transaction() 585 h->block_rsv = NULL; in start_transaction() 642 * delayed block_rsv so just add 1 items worth of reservation in start_transaction() 708 h->block_rsv = &fs_info->trans_block_rsv; in start_transaction() 724 u64 flags = h->block_rsv->space_info->flags; in start_transaction() 933 if (!trans->block_rsv) { in btrfs_trans_release_metadata() 941 ASSERT(trans->block_rsv == &fs_info->trans_block_rsv); in btrfs_trans_release_metadata() 944 btrfs_block_rsv_release(fs_info, trans->block_rsv, in btrfs_trans_release_metadata() 958 trans->block_rsv = trans->orig_rsv; in __btrfs_end_transaction() 963 trans->block_rsv in __btrfs_end_transaction() [all...] |
H A D | inode-map.c | 429 rsv = trans->block_rsv; in btrfs_save_ino_cache() 430 trans->block_rsv = &fs_info->trans_block_rsv; in btrfs_save_ino_cache() 441 ret = btrfs_block_rsv_add(root, trans->block_rsv, in btrfs_save_ino_cache() 518 btrfs_block_rsv_release(fs_info, trans->block_rsv, in btrfs_save_ino_cache() 521 trans->block_rsv = rsv; in btrfs_save_ino_cache()
|
H A D | delayed-ref.c | 81 struct btrfs_block_rsv *block_rsv = &fs_info->delayed_refs_rsv; in btrfs_delayed_refs_rsv_release() local 85 released = btrfs_block_rsv_release(fs_info, block_rsv, num_bytes, NULL); in btrfs_delayed_refs_rsv_release() 169 * This will refill the delayed block_rsv up to 1 items size worth of space and 175 struct btrfs_block_rsv *block_rsv = &fs_info->delayed_refs_rsv; in btrfs_delayed_refs_rsv_refill() local 180 spin_lock(&block_rsv->lock); in btrfs_delayed_refs_rsv_refill() 181 if (block_rsv->reserved < block_rsv->size) { in btrfs_delayed_refs_rsv_refill() 182 num_bytes = block_rsv->size - block_rsv->reserved; in btrfs_delayed_refs_rsv_refill() 185 spin_unlock(&block_rsv in btrfs_delayed_refs_rsv_refill() [all...] |
H A D | relocation.c | 123 struct btrfs_block_rsv *block_rsv; member 874 rsv = trans->block_rsv; in btrfs_init_reloc_root() 875 trans->block_rsv = rc->block_rsv; in btrfs_init_reloc_root() 880 trans->block_rsv = rsv; in btrfs_init_reloc_root() 1723 ret = btrfs_block_rsv_refill(root, rc->block_rsv, min_reserved, in merge_reloc_root() 1747 trans->block_rsv = rc->block_rsv; in merge_reloc_root() 1848 ret = btrfs_block_rsv_add(root, rc->block_rsv, num_bytes, in prepare_to_merge() 1857 btrfs_block_rsv_release(fs_info, rc->block_rsv, in prepare_to_merge() [all...] |
H A D | transaction.h | 123 struct btrfs_block_rsv *block_rsv; member 159 struct btrfs_block_rsv block_rsv; member
|
H A D | space-info.c | 29 * 2) block_rsv's. These are basically buckets for every different type of 30 * metadata reservation we have. You can see the comment in the block_rsv 31 * code on the rules for each type, but generally block_rsv->reserved is how 365 * basically when we're returning space from block_rsv's. 1299 * reserve_metadata_bytes - try to reserve bytes from the block_rsv's space 1306 * with the block_rsv. If there is not enough space it will make an attempt to 1410 * reserve_metadata_bytes - try to reserve bytes from the block_rsv's space 1412 * @block_rsv - the block_rsv we're allocating for 1417 * with the block_rsv 1423 btrfs_reserve_metadata_bytes(struct btrfs_root *root, struct btrfs_block_rsv *block_rsv, u64 orig_bytes, enum btrfs_reserve_flush_enum flush) btrfs_reserve_metadata_bytes() argument [all...] |
H A D | space-info.h | 133 struct btrfs_block_rsv *block_rsv,
|
H A D | ioctl.c | 590 struct btrfs_block_rsv block_rsv; in create_subvol() local 621 btrfs_init_block_rsv(&block_rsv, BTRFS_BLOCK_RSV_TEMP); in create_subvol() 626 ret = btrfs_subvolume_reserve_metadata(root, &block_rsv, 8, false); in create_subvol() 633 btrfs_subvolume_release_metadata(root, &block_rsv); in create_subvol() 636 trans->block_rsv = &block_rsv; in create_subvol() 637 trans->bytes_reserved = block_rsv.size; in create_subvol() 768 trans->block_rsv = NULL; in create_subvol() 770 btrfs_subvolume_release_metadata(root, &block_rsv); in create_subvol() 828 btrfs_init_block_rsv(&pending_snapshot->block_rsv, in create_snapshot() 3646 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; btrfs_ioctl_space_info() local [all...] |
H A D | super.c | 2193 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in btrfs_statfs() local 2232 spin_lock(&block_rsv->lock); in btrfs_statfs() 2234 if (buf->f_bfree >= block_rsv->size >> bits) in btrfs_statfs() 2235 buf->f_bfree -= block_rsv->size >> bits; in btrfs_statfs() 2238 spin_unlock(&block_rsv->lock); in btrfs_statfs() 2269 if (!mixed && block_rsv->space_info->full && in btrfs_statfs() 2270 (total_free_meta < thresh || total_free_meta - thresh < block_rsv->size)) in btrfs_statfs()
|
H A D | props.c | 366 ret = btrfs_block_rsv_add(root, trans->block_rsv, in inherit_props() 385 btrfs_block_rsv_release(fs_info, trans->block_rsv, in inherit_props()
|
/kernel/linux/linux-6.6/fs/btrfs/ |
H A D | block-rsv.c | 16 * Think of block_rsv's as buckets for logically grouped metadata 17 * reservations. Each block_rsv has a ->size and a ->reserved. ->size is 39 * to determine the appropriate block_rsv to use, and then verify that 106 struct btrfs_block_rsv *block_rsv, in block_rsv_release_bytes() 110 struct btrfs_space_info *space_info = block_rsv->space_info; in block_rsv_release_bytes() 114 spin_lock(&block_rsv->lock); in block_rsv_release_bytes() 116 num_bytes = block_rsv->size; in block_rsv_release_bytes() 117 qgroup_to_release = block_rsv->qgroup_rsv_size; in block_rsv_release_bytes() 119 block_rsv->size -= num_bytes; in block_rsv_release_bytes() 120 if (block_rsv in block_rsv_release_bytes() 105 block_rsv_release_bytes(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, struct btrfs_block_rsv *dest, u64 num_bytes, u64 *qgroup_to_release_ret) block_rsv_release_bytes() argument 196 struct btrfs_block_rsv *block_rsv; btrfs_alloc_block_rsv() local 215 btrfs_block_rsv_add(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, u64 num_bytes, enum btrfs_reserve_flush_enum flush) btrfs_block_rsv_add() argument 231 btrfs_block_rsv_check(struct btrfs_block_rsv *block_rsv, int min_percent) btrfs_block_rsv_check() argument 245 btrfs_block_rsv_refill(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, u64 num_bytes, enum btrfs_reserve_flush_enum flush) btrfs_block_rsv_refill() argument 273 btrfs_block_rsv_release(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, u64 num_bytes, u64 *qgroup_to_release) btrfs_block_rsv_release() argument 297 btrfs_block_rsv_use_bytes(struct btrfs_block_rsv *block_rsv, u64 num_bytes) btrfs_block_rsv_use_bytes() argument 312 btrfs_block_rsv_add_bytes(struct btrfs_block_rsv *block_rsv, u64 num_bytes, bool update_size) btrfs_block_rsv_add_bytes() argument 326 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; btrfs_update_global_block_rsv() local 460 struct btrfs_block_rsv *block_rsv = NULL; get_block_rsv() local 482 struct btrfs_block_rsv *block_rsv; btrfs_use_block_rsv() local [all...] |
H A D | delalloc-space.c | 76 * We keep a per-inode block_rsv in order to make it easier to keep track of 221 struct btrfs_block_rsv *block_rsv = &inode->block_rsv; in btrfs_inode_rsv_release() local 226 * Since we statically set the block_rsv->size we just want to say we in btrfs_inode_rsv_release() 230 released = btrfs_block_rsv_release(fs_info, block_rsv, 0, in btrfs_inode_rsv_release() 245 struct btrfs_block_rsv *block_rsv = &inode->block_rsv; in btrfs_calculate_inode_block_rsv_size() local 276 spin_lock(&block_rsv->lock); in btrfs_calculate_inode_block_rsv_size() 277 block_rsv->size = reserve_size; in btrfs_calculate_inode_block_rsv_size() 278 block_rsv in btrfs_calculate_inode_block_rsv_size() 312 struct btrfs_block_rsv *block_rsv = &inode->block_rsv; btrfs_delalloc_reserve_metadata() local [all...] |
H A D | block-rsv.h | 64 struct btrfs_block_rsv *block_rsv, u64 num_bytes, 66 int btrfs_block_rsv_check(struct btrfs_block_rsv *block_rsv, int min_percent); 68 struct btrfs_block_rsv *block_rsv, u64 num_bytes, 73 int btrfs_block_rsv_use_bytes(struct btrfs_block_rsv *block_rsv, u64 num_bytes); 74 void btrfs_block_rsv_add_bytes(struct btrfs_block_rsv *block_rsv, 77 struct btrfs_block_rsv *block_rsv, 88 struct btrfs_block_rsv *block_rsv, in btrfs_unuse_block_rsv() 91 btrfs_block_rsv_add_bytes(block_rsv, blocksize, false); in btrfs_unuse_block_rsv() 92 btrfs_block_rsv_release(fs_info, block_rsv, 0, NULL); in btrfs_unuse_block_rsv() 87 btrfs_unuse_block_rsv(struct btrfs_fs_info *fs_info, struct btrfs_block_rsv *block_rsv, u32 blocksize) btrfs_unuse_block_rsv() argument
|
H A D | delayed-ref.c | 67 struct btrfs_block_rsv *block_rsv = &fs_info->delayed_refs_rsv; in btrfs_delayed_refs_rsv_release() local 71 released = btrfs_block_rsv_release(fs_info, block_rsv, num_bytes, NULL); in btrfs_delayed_refs_rsv_release() 150 * This will refill the delayed block_rsv up to 1 items size worth of space and 156 struct btrfs_block_rsv *block_rsv = &fs_info->delayed_refs_rsv; in btrfs_delayed_refs_rsv_refill() local 163 spin_lock(&block_rsv->lock); in btrfs_delayed_refs_rsv_refill() 164 if (block_rsv->reserved < block_rsv->size) { in btrfs_delayed_refs_rsv_refill() 165 num_bytes = block_rsv->size - block_rsv->reserved; in btrfs_delayed_refs_rsv_refill() 168 spin_unlock(&block_rsv in btrfs_delayed_refs_rsv_refill() [all...] |
H A D | delayed-inode.c | 502 src_rsv = trans->block_rsv; in btrfs_delayed_item_reserve_metadata() 575 src_rsv = trans->block_rsv; in btrfs_delayed_inode_reserve_metadata() 1139 struct btrfs_block_rsv *block_rsv; in __btrfs_run_delayed_items() local 1150 block_rsv = trans->block_rsv; in __btrfs_run_delayed_items() 1151 trans->block_rsv = &fs_info->delayed_block_rsv; in __btrfs_run_delayed_items() 1187 trans->block_rsv = block_rsv; in __btrfs_run_delayed_items() 1207 struct btrfs_block_rsv *block_rsv; in btrfs_commit_inode_delayed_items() local 1227 block_rsv in btrfs_commit_inode_delayed_items() 1245 struct btrfs_block_rsv *block_rsv; btrfs_commit_inode_delayed_inode() local 1319 struct btrfs_block_rsv *block_rsv; btrfs_async_run_delayed_root() local [all...] |
H A D | transaction.c | 585 h->orig_rsv = h->block_rsv; in start_transaction() 586 h->block_rsv = NULL; in start_transaction() 649 * delayed block_rsv so just add 1 items worth of reservation in start_transaction() 713 h->block_rsv = &fs_info->trans_block_rsv; in start_transaction() 737 u64 flags = h->block_rsv->space_info->flags; in start_transaction() 990 if (!trans->block_rsv) { in btrfs_trans_release_metadata() 998 ASSERT(trans->block_rsv == &fs_info->trans_block_rsv); in btrfs_trans_release_metadata() 1001 btrfs_block_rsv_release(fs_info, trans->block_rsv, in btrfs_trans_release_metadata() 1015 trans->block_rsv = trans->orig_rsv; in __btrfs_end_transaction() 1020 trans->block_rsv in __btrfs_end_transaction() [all...] |
H A D | relocation.c | 135 struct btrfs_block_rsv *block_rsv; member 888 rsv = trans->block_rsv; in btrfs_init_reloc_root() 889 trans->block_rsv = rc->block_rsv; in btrfs_init_reloc_root() 894 trans->block_rsv = rsv; in btrfs_init_reloc_root() 1757 ret = btrfs_block_rsv_refill(fs_info, rc->block_rsv, in merge_reloc_root() 1780 trans->block_rsv = rc->block_rsv; in merge_reloc_root() 1877 ret = btrfs_block_rsv_add(fs_info, rc->block_rsv, num_bytes, in prepare_to_merge() 1886 btrfs_block_rsv_release(fs_info, rc->block_rsv, in prepare_to_merge() [all...] |
H A D | transaction.h | 127 struct btrfs_block_rsv *block_rsv; member 164 struct btrfs_block_rsv block_rsv; member
|
H A D | space-info.h | 215 struct btrfs_block_rsv *block_rsv,
|
H A D | ioctl.c | 595 struct btrfs_block_rsv block_rsv; in create_subvol() local 638 btrfs_init_block_rsv(&block_rsv, BTRFS_BLOCK_RSV_TEMP); in create_subvol() 639 ret = btrfs_subvolume_reserve_metadata(root, &block_rsv, in create_subvol() 647 btrfs_subvolume_release_metadata(root, &block_rsv); in create_subvol() 650 trans->block_rsv = &block_rsv; in create_subvol() 651 trans->bytes_reserved = block_rsv.size; in create_subvol() 758 trans->block_rsv = NULL; in create_subvol() 760 btrfs_subvolume_release_metadata(root, &block_rsv); in create_subvol() 820 btrfs_init_block_rsv(&pending_snapshot->block_rsv, in create_snapshot() 3106 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; btrfs_ioctl_space_info() local [all...] |
H A D | super.c | 2046 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in btrfs_statfs() local 2085 spin_lock(&block_rsv->lock); in btrfs_statfs() 2087 if (buf->f_bfree >= block_rsv->size >> bits) in btrfs_statfs() 2088 buf->f_bfree -= block_rsv->size >> bits; in btrfs_statfs() 2091 spin_unlock(&block_rsv->lock); in btrfs_statfs() 2122 if (!mixed && block_rsv->space_info->full && in btrfs_statfs() 2123 (total_free_meta < thresh || total_free_meta - thresh < block_rsv->size)) in btrfs_statfs()
|