Lines Matching refs:delayed_refs
433 int btrfs_delayed_ref_lock(struct btrfs_delayed_ref_root *delayed_refs, in btrfs_delayed_ref_lock() argument
436 lockdep_assert_held(&delayed_refs->lock); in btrfs_delayed_ref_lock()
441 spin_unlock(&delayed_refs->lock); in btrfs_delayed_ref_lock()
444 spin_lock(&delayed_refs->lock); in btrfs_delayed_ref_lock()
455 struct btrfs_delayed_ref_root *delayed_refs, in drop_delayed_ref() argument
465 atomic_dec(&delayed_refs->num_entries); in drop_delayed_ref()
470 struct btrfs_delayed_ref_root *delayed_refs, in merge_ref() argument
499 drop_delayed_ref(fs_info, delayed_refs, head, next); in merge_ref()
502 drop_delayed_ref(fs_info, delayed_refs, head, ref); in merge_ref()
517 struct btrfs_delayed_ref_root *delayed_refs, in btrfs_merge_delayed_refs() argument
540 if (merge_ref(fs_info, delayed_refs, head, ref, seq)) in btrfs_merge_delayed_refs()
561 struct btrfs_delayed_ref_root *delayed_refs) in btrfs_select_ref_head() argument
565 lockdep_assert_held(&delayed_refs->lock); in btrfs_select_ref_head()
567 head = find_ref_head(delayed_refs, delayed_refs->run_delayed_start, in btrfs_select_ref_head()
569 if (!head && delayed_refs->run_delayed_start != 0) { in btrfs_select_ref_head()
570 delayed_refs->run_delayed_start = 0; in btrfs_select_ref_head()
571 head = find_first_ref_head(delayed_refs); in btrfs_select_ref_head()
581 if (delayed_refs->run_delayed_start == 0) in btrfs_select_ref_head()
583 delayed_refs->run_delayed_start = 0; in btrfs_select_ref_head()
591 WARN_ON(delayed_refs->num_heads_ready == 0); in btrfs_select_ref_head()
592 delayed_refs->num_heads_ready--; in btrfs_select_ref_head()
593 delayed_refs->run_delayed_start = head->bytenr + in btrfs_select_ref_head()
598 void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs, in btrfs_delete_ref_head() argument
601 lockdep_assert_held(&delayed_refs->lock); in btrfs_delete_ref_head()
604 rb_erase_cached(&head->href_node, &delayed_refs->href_root); in btrfs_delete_ref_head()
606 atomic_dec(&delayed_refs->num_entries); in btrfs_delete_ref_head()
607 delayed_refs->num_heads--; in btrfs_delete_ref_head()
609 delayed_refs->num_heads_ready--; in btrfs_delete_ref_head()
623 struct btrfs_delayed_ref_root *root = &trans->transaction->delayed_refs; in insert_delayed_ref()
676 struct btrfs_delayed_ref_root *delayed_refs = in update_existing_head_ref() local
677 &trans->transaction->delayed_refs; in update_existing_head_ref()
751 delayed_refs->pending_csums -= existing->num_bytes; in update_existing_head_ref()
755 delayed_refs->pending_csums += existing->num_bytes; in update_existing_head_ref()
854 struct btrfs_delayed_ref_root *delayed_refs; in add_delayed_ref_head() local
857 delayed_refs = &trans->transaction->delayed_refs; in add_delayed_ref_head()
863 ret = btrfs_qgroup_trace_extent_nolock(fs_info, delayed_refs, qrecord); in add_delayed_ref_head()
866 xa_release(&delayed_refs->dirty_extents, in add_delayed_ref_head()
879 existing = htree_insert(&delayed_refs->href_root, in add_delayed_ref_head()
897 delayed_refs->pending_csums += head_ref->num_bytes; in add_delayed_ref_head()
901 delayed_refs->num_heads++; in add_delayed_ref_head()
902 delayed_refs->num_heads_ready++; in add_delayed_ref_head()
903 atomic_inc(&delayed_refs->num_entries); in add_delayed_ref_head()
1009 struct btrfs_delayed_ref_root *delayed_refs; in add_delayed_ref() local
1032 if (xa_reserve(&trans->transaction->delayed_refs.dirty_extents, in add_delayed_ref()
1044 delayed_refs = &trans->transaction->delayed_refs; in add_delayed_ref()
1045 spin_lock(&delayed_refs->lock); in add_delayed_ref()
1054 spin_unlock(&delayed_refs->lock); in add_delayed_ref()
1061 spin_unlock(&delayed_refs->lock); in add_delayed_ref()
1118 struct btrfs_delayed_ref_root *delayed_refs; in btrfs_add_delayed_extent_op() local
1134 delayed_refs = &trans->transaction->delayed_refs; in btrfs_add_delayed_extent_op()
1135 spin_lock(&delayed_refs->lock); in btrfs_add_delayed_extent_op()
1139 spin_unlock(&delayed_refs->lock); in btrfs_add_delayed_extent_op()
1167 btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, u64 bytenr) in btrfs_find_delayed_ref_head() argument
1169 lockdep_assert_held(&delayed_refs->lock); in btrfs_find_delayed_ref_head()
1171 return find_ref_head(delayed_refs, bytenr, false); in btrfs_find_delayed_ref_head()