• Home
  • Raw
  • Download

Lines Matching refs:head

395 			   struct btrfs_delayed_ref_head *head)  in btrfs_delayed_ref_lock()  argument
398 if (mutex_trylock(&head->mutex)) in btrfs_delayed_ref_lock()
401 refcount_inc(&head->refs); in btrfs_delayed_ref_lock()
404 mutex_lock(&head->mutex); in btrfs_delayed_ref_lock()
406 if (RB_EMPTY_NODE(&head->href_node)) { in btrfs_delayed_ref_lock()
407 mutex_unlock(&head->mutex); in btrfs_delayed_ref_lock()
408 btrfs_put_delayed_ref_head(head); in btrfs_delayed_ref_lock()
411 btrfs_put_delayed_ref_head(head); in btrfs_delayed_ref_lock()
417 struct btrfs_delayed_ref_head *head, in drop_delayed_ref() argument
420 lockdep_assert_held(&head->lock); in drop_delayed_ref()
421 rb_erase_cached(&ref->ref_node, &head->ref_tree); in drop_delayed_ref()
432 struct btrfs_delayed_ref_head *head, in merge_ref() argument
460 drop_delayed_ref(trans, delayed_refs, head, next); in merge_ref()
463 drop_delayed_ref(trans, delayed_refs, head, ref); in merge_ref()
479 struct btrfs_delayed_ref_head *head) in btrfs_merge_delayed_refs() argument
486 lockdep_assert_held(&head->lock); in btrfs_merge_delayed_refs()
488 if (RB_EMPTY_ROOT(&head->ref_tree.rb_root)) in btrfs_merge_delayed_refs()
492 if (head->is_data) in btrfs_merge_delayed_refs()
506 for (node = rb_first_cached(&head->ref_tree); node; in btrfs_merge_delayed_refs()
511 if (merge_ref(trans, delayed_refs, head, ref, seq)) in btrfs_merge_delayed_refs()
541 struct btrfs_delayed_ref_head *head; in btrfs_select_ref_head() local
544 head = find_ref_head(delayed_refs, delayed_refs->run_delayed_start, in btrfs_select_ref_head()
546 if (!head && delayed_refs->run_delayed_start != 0) { in btrfs_select_ref_head()
548 head = find_first_ref_head(delayed_refs); in btrfs_select_ref_head()
550 if (!head) in btrfs_select_ref_head()
553 while (head->processing) { in btrfs_select_ref_head()
556 node = rb_next(&head->href_node); in btrfs_select_ref_head()
563 head = rb_entry(node, struct btrfs_delayed_ref_head, in btrfs_select_ref_head()
567 head->processing = 1; in btrfs_select_ref_head()
570 delayed_refs->run_delayed_start = head->bytenr + in btrfs_select_ref_head()
571 head->num_bytes; in btrfs_select_ref_head()
572 return head; in btrfs_select_ref_head()
576 struct btrfs_delayed_ref_head *head) in btrfs_delete_ref_head() argument
579 lockdep_assert_held(&head->lock); in btrfs_delete_ref_head()
581 rb_erase_cached(&head->href_node, &delayed_refs->href_root); in btrfs_delete_ref_head()
582 RB_CLEAR_NODE(&head->href_node); in btrfs_delete_ref_head()
585 if (head->processing == 0) in btrfs_delete_ref_head()