Home
last modified time | relevance | path

Searched refs:block_rsv (Results 1 - 25 of 40) sorted by relevance

12

/kernel/linux/linux-5.10/fs/btrfs/
H A Dblock-rsv.c13 * 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 Dblock-rsv.h61 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 Ddelalloc-space.c74 * 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 Ddelayed-inode.c561 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 Dtransaction.c584 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 Dinode-map.c429 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 Ddelayed-ref.c81 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 Drelocation.c123 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 Dtransaction.h123 struct btrfs_block_rsv *block_rsv; member
159 struct btrfs_block_rsv block_rsv; member
H A Dspace-info.c29 * 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 Dspace-info.h133 struct btrfs_block_rsv *block_rsv,
H A Dioctl.c590 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 Dsuper.c2193 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 Dprops.c366 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 Dblock-rsv.c16 * 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 Ddelalloc-space.c76 * 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 Dblock-rsv.h64 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 Ddelayed-ref.c67 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 Ddelayed-inode.c502 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 Dtransaction.c585 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 Drelocation.c135 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 Dtransaction.h127 struct btrfs_block_rsv *block_rsv; member
164 struct btrfs_block_rsv block_rsv; member
H A Dspace-info.h215 struct btrfs_block_rsv *block_rsv,
H A Dioctl.c595 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 Dsuper.c2046 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()

Completed in 36 milliseconds

12