/kernel/linux/linux-6.6/fs/btrfs/ |
H A D | delayed-ref.c | 404 int btrfs_delayed_ref_lock(struct btrfs_delayed_ref_root *delayed_refs, in btrfs_delayed_ref_lock() argument 407 lockdep_assert_held(&delayed_refs->lock); in btrfs_delayed_ref_lock() 412 spin_unlock(&delayed_refs->lock); in btrfs_delayed_ref_lock() 415 spin_lock(&delayed_refs->lock); in btrfs_delayed_ref_lock() 425 static inline void drop_delayed_ref(struct btrfs_delayed_ref_root *delayed_refs, in drop_delayed_ref() argument 435 atomic_dec(&delayed_refs->num_entries); in drop_delayed_ref() 438 static bool merge_ref(struct btrfs_delayed_ref_root *delayed_refs, in merge_ref() argument 467 drop_delayed_ref(delayed_refs, head, next); in merge_ref() 470 drop_delayed_ref(delayed_refs, head, ref); in merge_ref() 485 struct btrfs_delayed_ref_root *delayed_refs, in btrfs_merge_delayed_refs() 484 btrfs_merge_delayed_refs(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head) btrfs_merge_delayed_refs() argument 528 btrfs_select_ref_head( struct btrfs_delayed_ref_root *delayed_refs) btrfs_select_ref_head() argument 566 btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head) btrfs_delete_ref_head() argument 642 struct btrfs_delayed_ref_root *delayed_refs = update_existing_head_ref() local 795 struct btrfs_delayed_ref_root *delayed_refs; add_delayed_ref_head() local 900 struct btrfs_delayed_ref_root *delayed_refs; btrfs_add_delayed_tree_ref() local 993 struct btrfs_delayed_ref_root *delayed_refs; btrfs_add_delayed_data_ref() local 1080 struct btrfs_delayed_ref_root *delayed_refs; btrfs_add_delayed_extent_op() local 1111 btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, u64 bytenr) btrfs_find_delayed_ref_head() argument [all...] |
H A D | transaction.h | 92 struct btrfs_delayed_ref_root delayed_refs; member 190 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_set_skip_qgroup() local 192 delayed_refs = &trans->transaction->delayed_refs; in btrfs_set_skip_qgroup() 193 WARN_ON(delayed_refs->qgroup_to_skip); in btrfs_set_skip_qgroup() 194 delayed_refs->qgroup_to_skip = qgroupid; in btrfs_set_skip_qgroup() 199 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_clear_skip_qgroup() local 201 delayed_refs = &trans->transaction->delayed_refs; in btrfs_clear_skip_qgroup() 202 WARN_ON(!delayed_refs in btrfs_clear_skip_qgroup() [all...] |
H A D | delayed-ref.h | 385 struct btrfs_delayed_ref_root *delayed_refs, 389 btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, 391 int btrfs_delayed_ref_lock(struct btrfs_delayed_ref_root *delayed_refs, 397 void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs, 401 struct btrfs_delayed_ref_root *delayed_refs);
|
H A D | extent-tree.c | 107 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_lookup_extent_info() local 191 delayed_refs = &trans->transaction->delayed_refs; in btrfs_lookup_extent_info() 192 spin_lock(&delayed_refs->lock); in btrfs_lookup_extent_info() 193 head = btrfs_find_delayed_ref_head(delayed_refs, bytenr); in btrfs_lookup_extent_info() 197 spin_unlock(&delayed_refs->lock); in btrfs_lookup_extent_info() 220 spin_unlock(&delayed_refs->lock); in btrfs_lookup_extent_info() 1789 static void unselect_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, in unselect_delayed_ref_head() argument 1792 spin_lock(&delayed_refs->lock); in unselect_delayed_ref_head() 1794 delayed_refs in unselect_delayed_ref_head() 1831 btrfs_cleanup_ref_head_accounting(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head) btrfs_cleanup_ref_head_accounting() argument 1856 struct btrfs_delayed_ref_root *delayed_refs; cleanup_ref_head() local 1908 struct btrfs_delayed_ref_root *delayed_refs = btrfs_obtain_ref_head() local 1942 struct btrfs_delayed_ref_root *delayed_refs; btrfs_run_delayed_refs_for_head() local 2021 struct btrfs_delayed_ref_root *delayed_refs; __btrfs_run_delayed_refs() local 2146 struct btrfs_delayed_ref_root *delayed_refs; btrfs_run_delayed_refs() local 2227 struct btrfs_delayed_ref_root *delayed_refs; check_delayed_ref() local 3236 struct btrfs_delayed_ref_root *delayed_refs; check_ref_cleanup() local [all...] |
H A D | transaction.c | 147 &transaction->delayed_refs.href_root.rb_root)); in btrfs_put_transaction() 149 &transaction->delayed_refs.dirty_extent_root)); in btrfs_put_transaction() 150 if (transaction->delayed_refs.pending_csums) in btrfs_put_transaction() 153 transaction->delayed_refs.pending_csums); in btrfs_put_transaction() 353 memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs)); in join_transaction() 355 cur_trans->delayed_refs.href_root = RB_ROOT_CACHED; in join_transaction() 356 cur_trans->delayed_refs.dirty_extent_root = RB_ROOT; in join_transaction() 357 atomic_set(&cur_trans->delayed_refs.num_entries, 0); in join_transaction() 370 spin_lock_init(&cur_trans->delayed_refs in join_transaction() [all...] |
H A D | qgroup.c | 1808 struct btrfs_delayed_ref_root *delayed_refs, in btrfs_qgroup_trace_extent_nolock() 1811 struct rb_node **p = &delayed_refs->dirty_extent_root.rb_node; in btrfs_qgroup_trace_extent_nolock() 1816 lockdep_assert_held(&delayed_refs->lock); in btrfs_qgroup_trace_extent_nolock() 1838 rb_insert_color(&record->node, &delayed_refs->dirty_extent_root); in btrfs_qgroup_trace_extent_nolock() 1886 * trans->transaction->delayed_refs, since inserted qrecord won't in btrfs_qgroup_trace_extent_post() 1900 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_qgroup_trace_extent() local 1910 delayed_refs = &trans->transaction->delayed_refs; in btrfs_qgroup_trace_extent() 1915 spin_lock(&delayed_refs->lock); in btrfs_qgroup_trace_extent() 1916 ret = btrfs_qgroup_trace_extent_nolock(fs_info, delayed_refs, recor in btrfs_qgroup_trace_extent() 1807 btrfs_qgroup_trace_extent_nolock(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_qgroup_extent_record *record) btrfs_qgroup_trace_extent_nolock() argument 2790 struct btrfs_delayed_ref_root *delayed_refs; btrfs_qgroup_account_extents() local [all...] |
H A D | extent-tree.h | 96 struct btrfs_delayed_ref_root *delayed_refs,
|
H A D | qgroup.h | 292 struct btrfs_delayed_ref_root *delayed_refs,
|
H A D | disk-io.c | 4597 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_destroy_delayed_refs() local 4600 delayed_refs = &trans->delayed_refs; in btrfs_destroy_delayed_refs() 4602 spin_lock(&delayed_refs->lock); in btrfs_destroy_delayed_refs() 4603 if (atomic_read(&delayed_refs->num_entries) == 0) { in btrfs_destroy_delayed_refs() 4604 spin_unlock(&delayed_refs->lock); in btrfs_destroy_delayed_refs() 4605 btrfs_debug(fs_info, "delayed_refs has NO entry"); in btrfs_destroy_delayed_refs() 4609 while ((node = rb_first_cached(&delayed_refs->href_root)) != NULL) { in btrfs_destroy_delayed_refs() 4616 if (btrfs_delayed_ref_lock(delayed_refs, head)) in btrfs_destroy_delayed_refs() 4627 atomic_dec(&delayed_refs in btrfs_destroy_delayed_refs() [all...] |
H A D | backref.c | 1393 struct btrfs_delayed_ref_root *delayed_refs = NULL; in find_parent_nodes() local 1449 delayed_refs = &ctx->trans->transaction->delayed_refs; in find_parent_nodes() 1450 spin_lock(&delayed_refs->lock); in find_parent_nodes() 1451 head = btrfs_find_delayed_ref_head(delayed_refs, ctx->bytenr); in find_parent_nodes() 1455 spin_unlock(&delayed_refs->lock); in find_parent_nodes() 1468 spin_unlock(&delayed_refs->lock); in find_parent_nodes() 1475 spin_unlock(&delayed_refs->lock); in find_parent_nodes()
|
/kernel/linux/linux-5.10/fs/btrfs/ |
H A D | delayed-ref.c | 56 atomic_read(&trans->transaction->delayed_refs.num_entries); in btrfs_should_throttle_delayed_refs() 393 int btrfs_delayed_ref_lock(struct btrfs_delayed_ref_root *delayed_refs, in btrfs_delayed_ref_lock() argument 396 lockdep_assert_held(&delayed_refs->lock); in btrfs_delayed_ref_lock() 401 spin_unlock(&delayed_refs->lock); in btrfs_delayed_ref_lock() 404 spin_lock(&delayed_refs->lock); in btrfs_delayed_ref_lock() 415 struct btrfs_delayed_ref_root *delayed_refs, in drop_delayed_ref() 426 atomic_dec(&delayed_refs->num_entries); in drop_delayed_ref() 430 struct btrfs_delayed_ref_root *delayed_refs, in merge_ref() 459 drop_delayed_ref(trans, delayed_refs, head, next); in merge_ref() 462 drop_delayed_ref(trans, delayed_refs, hea in merge_ref() 414 drop_delayed_ref(struct btrfs_trans_handle *trans, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head, struct btrfs_delayed_ref_node *ref) drop_delayed_ref() argument 429 merge_ref(struct btrfs_trans_handle *trans, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head, struct btrfs_delayed_ref_node *ref, u64 seq) merge_ref() argument 476 btrfs_merge_delayed_refs(struct btrfs_trans_handle *trans, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head) btrfs_merge_delayed_refs() argument 537 btrfs_select_ref_head( struct btrfs_delayed_ref_root *delayed_refs) btrfs_select_ref_head() argument 574 btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head) btrfs_delete_ref_head() argument 653 struct btrfs_delayed_ref_root *delayed_refs = update_existing_head_ref() local 823 struct btrfs_delayed_ref_root *delayed_refs; add_delayed_ref_head() local 935 struct btrfs_delayed_ref_root *delayed_refs; btrfs_add_delayed_tree_ref() local 1030 struct btrfs_delayed_ref_root *delayed_refs; btrfs_add_delayed_data_ref() local 1119 struct btrfs_delayed_ref_root *delayed_refs; btrfs_add_delayed_extent_op() local 1151 btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, u64 bytenr) btrfs_find_delayed_ref_head() argument [all...] |
H A D | transaction.h | 86 struct btrfs_delayed_ref_root delayed_refs; member 185 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_set_skip_qgroup() local 187 delayed_refs = &trans->transaction->delayed_refs; in btrfs_set_skip_qgroup() 188 WARN_ON(delayed_refs->qgroup_to_skip); in btrfs_set_skip_qgroup() 189 delayed_refs->qgroup_to_skip = qgroupid; in btrfs_set_skip_qgroup() 194 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_clear_skip_qgroup() local 196 delayed_refs = &trans->transaction->delayed_refs; in btrfs_clear_skip_qgroup() 197 WARN_ON(!delayed_refs in btrfs_clear_skip_qgroup() [all...] |
H A D | delayed-ref.h | 355 struct btrfs_delayed_ref_root *delayed_refs, 359 btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, 361 int btrfs_delayed_ref_lock(struct btrfs_delayed_ref_root *delayed_refs, 367 void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs, 371 struct btrfs_delayed_ref_root *delayed_refs);
|
H A D | extent-tree.c | 118 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_lookup_extent_info() local 199 delayed_refs = &trans->transaction->delayed_refs; in btrfs_lookup_extent_info() 200 spin_lock(&delayed_refs->lock); in btrfs_lookup_extent_info() 201 head = btrfs_find_delayed_ref_head(delayed_refs, bytenr); in btrfs_lookup_extent_info() 205 spin_unlock(&delayed_refs->lock); in btrfs_lookup_extent_info() 228 spin_unlock(&delayed_refs->lock); in btrfs_lookup_extent_info() 1725 static void unselect_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, in unselect_delayed_ref_head() argument 1728 spin_lock(&delayed_refs->lock); in unselect_delayed_ref_head() 1730 delayed_refs in unselect_delayed_ref_head() 1767 btrfs_cleanup_ref_head_accounting(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_delayed_ref_head *head) btrfs_cleanup_ref_head_accounting() argument 1805 struct btrfs_delayed_ref_root *delayed_refs; cleanup_ref_head() local 1854 struct btrfs_delayed_ref_root *delayed_refs = btrfs_obtain_ref_head() local 1889 struct btrfs_delayed_ref_root *delayed_refs; btrfs_run_delayed_refs_for_head() local 1970 struct btrfs_delayed_ref_root *delayed_refs; __btrfs_run_delayed_refs() local 2135 struct btrfs_delayed_ref_root *delayed_refs; btrfs_run_delayed_refs() local 2217 struct btrfs_delayed_ref_root *delayed_refs; check_delayed_ref() local 3274 struct btrfs_delayed_ref_root *delayed_refs; check_ref_cleanup() local [all...] |
H A D | transaction.c | 124 &transaction->delayed_refs.href_root.rb_root)); in btrfs_put_transaction() 126 &transaction->delayed_refs.dirty_extent_root)); in btrfs_put_transaction() 127 if (transaction->delayed_refs.pending_csums) in btrfs_put_transaction() 130 transaction->delayed_refs.pending_csums); in btrfs_put_transaction() 351 memset(&cur_trans->delayed_refs, 0, sizeof(cur_trans->delayed_refs)); in join_transaction() 353 cur_trans->delayed_refs.href_root = RB_ROOT_CACHED; in join_transaction() 354 cur_trans->delayed_refs.dirty_extent_root = RB_ROOT; in join_transaction() 355 atomic_set(&cur_trans->delayed_refs.num_entries, 0); in join_transaction() 368 spin_lock_init(&cur_trans->delayed_refs in join_transaction() [all...] |
H A D | qgroup.c | 1757 struct btrfs_delayed_ref_root *delayed_refs, in btrfs_qgroup_trace_extent_nolock() 1760 struct rb_node **p = &delayed_refs->dirty_extent_root.rb_node; in btrfs_qgroup_trace_extent_nolock() 1765 lockdep_assert_held(&delayed_refs->lock); in btrfs_qgroup_trace_extent_nolock() 1787 rb_insert_color(&record->node, &delayed_refs->dirty_extent_root); in btrfs_qgroup_trace_extent_nolock() 1809 * trans->transaction->delayed_refs, since inserted qrecord won't in btrfs_qgroup_trace_extent_post() 1823 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_qgroup_trace_extent() local 1833 delayed_refs = &trans->transaction->delayed_refs; in btrfs_qgroup_trace_extent() 1838 spin_lock(&delayed_refs->lock); in btrfs_qgroup_trace_extent() 1839 ret = btrfs_qgroup_trace_extent_nolock(fs_info, delayed_refs, recor in btrfs_qgroup_trace_extent() 1756 btrfs_qgroup_trace_extent_nolock(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_root *delayed_refs, struct btrfs_qgroup_extent_record *record) btrfs_qgroup_trace_extent_nolock() argument 2723 struct btrfs_delayed_ref_root *delayed_refs; btrfs_qgroup_account_extents() local [all...] |
H A D | backref.c | 1186 * If time_seq is set to SEQ_LAST, it will not search delayed_refs, and behave 1210 struct btrfs_delayed_ref_root *delayed_refs = NULL; local 1269 delayed_refs = &trans->transaction->delayed_refs; 1270 spin_lock(&delayed_refs->lock); 1271 head = btrfs_find_delayed_ref_head(delayed_refs, bytenr); 1275 spin_unlock(&delayed_refs->lock); 1288 spin_unlock(&delayed_refs->lock); 1295 spin_unlock(&delayed_refs->lock);
|
H A D | qgroup.h | 277 struct btrfs_delayed_ref_root *delayed_refs,
|
H A D | disk-io.c | 4445 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_destroy_delayed_refs() local 4449 delayed_refs = &trans->delayed_refs; in btrfs_destroy_delayed_refs() 4451 spin_lock(&delayed_refs->lock); in btrfs_destroy_delayed_refs() 4452 if (atomic_read(&delayed_refs->num_entries) == 0) { in btrfs_destroy_delayed_refs() 4453 spin_unlock(&delayed_refs->lock); in btrfs_destroy_delayed_refs() 4454 btrfs_debug(fs_info, "delayed_refs has NO entry"); in btrfs_destroy_delayed_refs() 4458 while ((node = rb_first_cached(&delayed_refs->href_root)) != NULL) { in btrfs_destroy_delayed_refs() 4465 if (btrfs_delayed_ref_lock(delayed_refs, head)) in btrfs_destroy_delayed_refs() 4477 atomic_dec(&delayed_refs in btrfs_destroy_delayed_refs() [all...] |
H A D | ctree.h | 2555 struct btrfs_delayed_ref_root *delayed_refs,
|