Lines Matching defs:delayed_refs

404 int btrfs_delayed_ref_lock(struct btrfs_delayed_ref_root *delayed_refs,
407 lockdep_assert_held(&delayed_refs->lock);
412 spin_unlock(&delayed_refs->lock);
415 spin_lock(&delayed_refs->lock);
425 static inline void drop_delayed_ref(struct btrfs_delayed_ref_root *delayed_refs,
435 atomic_dec(&delayed_refs->num_entries);
438 static bool merge_ref(struct btrfs_delayed_ref_root *delayed_refs,
467 drop_delayed_ref(delayed_refs, head, next);
470 drop_delayed_ref(delayed_refs, head, ref);
485 struct btrfs_delayed_ref_root *delayed_refs,
508 if (merge_ref(delayed_refs, head, ref, seq))
529 struct btrfs_delayed_ref_root *delayed_refs)
533 lockdep_assert_held(&delayed_refs->lock);
535 head = find_ref_head(delayed_refs, delayed_refs->run_delayed_start,
537 if (!head && delayed_refs->run_delayed_start != 0) {
538 delayed_refs->run_delayed_start = 0;
539 head = find_first_ref_head(delayed_refs);
549 if (delayed_refs->run_delayed_start == 0)
551 delayed_refs->run_delayed_start = 0;
559 WARN_ON(delayed_refs->num_heads_ready == 0);
560 delayed_refs->num_heads_ready--;
561 delayed_refs->run_delayed_start = head->bytenr +
566 void btrfs_delete_ref_head(struct btrfs_delayed_ref_root *delayed_refs,
569 lockdep_assert_held(&delayed_refs->lock);
572 rb_erase_cached(&head->href_node, &delayed_refs->href_root);
574 atomic_dec(&delayed_refs->num_entries);
575 delayed_refs->num_heads--;
577 delayed_refs->num_heads_ready--;
642 struct btrfs_delayed_ref_root *delayed_refs =
643 &trans->transaction->delayed_refs;
705 delayed_refs->pending_csums -= existing->num_bytes;
709 delayed_refs->pending_csums += existing->num_bytes;
795 struct btrfs_delayed_ref_root *delayed_refs;
798 delayed_refs = &trans->transaction->delayed_refs;
803 delayed_refs, qrecord))
811 existing = htree_insert(&delayed_refs->href_root,
823 delayed_refs->pending_csums += head_ref->num_bytes;
828 delayed_refs->num_heads++;
829 delayed_refs->num_heads_ready++;
830 atomic_inc(&delayed_refs->num_entries);
900 struct btrfs_delayed_ref_root *delayed_refs;
952 delayed_refs = &trans->transaction->delayed_refs;
953 spin_lock(&delayed_refs->lock);
962 merged = insert_delayed_ref(delayed_refs, head_ref, &ref->node);
963 spin_unlock(&delayed_refs->lock);
993 struct btrfs_delayed_ref_root *delayed_refs;
1044 delayed_refs = &trans->transaction->delayed_refs;
1045 spin_lock(&delayed_refs->lock);
1054 merged = insert_delayed_ref(delayed_refs, head_ref, &ref->node);
1055 spin_unlock(&delayed_refs->lock);
1080 struct btrfs_delayed_ref_root *delayed_refs;
1090 delayed_refs = &trans->transaction->delayed_refs;
1091 spin_lock(&delayed_refs->lock);
1096 spin_unlock(&delayed_refs->lock);
1111 btrfs_find_delayed_ref_head(struct btrfs_delayed_ref_root *delayed_refs, u64 bytenr)
1113 lockdep_assert_held(&delayed_refs->lock);
1115 return find_ref_head(delayed_refs, bytenr, false);