Lines Matching refs:head_ref

725 static void init_delayed_ref_head(struct btrfs_delayed_ref_head *head_ref,  in init_delayed_ref_head()  argument
767 refcount_set(&head_ref->refs, 1); in init_delayed_ref_head()
768 head_ref->bytenr = generic_ref->bytenr; in init_delayed_ref_head()
769 head_ref->num_bytes = generic_ref->num_bytes; in init_delayed_ref_head()
770 head_ref->ref_mod = count_mod; in init_delayed_ref_head()
771 head_ref->reserved_bytes = reserved; in init_delayed_ref_head()
772 head_ref->must_insert_reserved = must_insert_reserved; in init_delayed_ref_head()
773 head_ref->owning_root = generic_ref->owning_root; in init_delayed_ref_head()
774 head_ref->is_data = (generic_ref->type == BTRFS_REF_DATA); in init_delayed_ref_head()
775 head_ref->is_system = (generic_ref->ref_root == BTRFS_CHUNK_TREE_OBJECTID); in init_delayed_ref_head()
776 head_ref->ref_tree = RB_ROOT_CACHED; in init_delayed_ref_head()
777 INIT_LIST_HEAD(&head_ref->ref_add_list); in init_delayed_ref_head()
778 head_ref->tracked = false; in init_delayed_ref_head()
779 head_ref->processing = false; in init_delayed_ref_head()
780 head_ref->total_ref_mod = count_mod; in init_delayed_ref_head()
781 spin_lock_init(&head_ref->lock); in init_delayed_ref_head()
782 mutex_init(&head_ref->mutex); in init_delayed_ref_head()
786 head_ref->level = generic_ref->tree_ref.level; in init_delayed_ref_head()
788 head_ref->level = U8_MAX; in init_delayed_ref_head()
809 struct btrfs_delayed_ref_head *head_ref, in add_delayed_ref_head() argument
816 const unsigned long index = (head_ref->bytenr >> fs_info->sectorsize_bits); in add_delayed_ref_head()
823 if (head_ref->bytenr >= MAX_LFS_FILESIZE) { in add_delayed_ref_head()
828 head_ref->bytenr); in add_delayed_ref_head()
839 head_ref->bytenr); in add_delayed_ref_head()
852 trace_add_delayed_ref_head(fs_info, head_ref, action); in add_delayed_ref_head()
856 update_existing_head_ref(trans, existing, head_ref); in add_delayed_ref_head()
861 kmem_cache_free(btrfs_delayed_ref_head_cachep, head_ref); in add_delayed_ref_head()
862 head_ref = existing; in add_delayed_ref_head()
864 existing = xa_store(&delayed_refs->head_refs, index, head_ref, GFP_ATOMIC); in add_delayed_ref_head()
876 head_ref->tracked = true; in add_delayed_ref_head()
883 if (head_ref->is_data && head_ref->ref_mod < 0) { in add_delayed_ref_head()
884 delayed_refs->pending_csums += head_ref->num_bytes; in add_delayed_ref_head()
886 btrfs_csum_bytes_to_leaves(fs_info, head_ref->num_bytes); in add_delayed_ref_head()
894 return head_ref; in add_delayed_ref_head()
993 struct btrfs_delayed_ref_head *head_ref; in add_delayed_ref() local
1008 head_ref = kmem_cache_alloc(btrfs_delayed_ref_head_cachep, GFP_NOFS); in add_delayed_ref()
1009 if (!head_ref) { in add_delayed_ref()
1037 init_delayed_ref_head(head_ref, generic_ref, record, reserved); in add_delayed_ref()
1038 head_ref->extent_op = extent_op; in add_delayed_ref()
1046 new_head_ref = add_delayed_ref_head(trans, head_ref, record, in add_delayed_ref()
1054 head_ref = new_head_ref; in add_delayed_ref()
1056 merged = insert_delayed_ref(trans, head_ref, node); in add_delayed_ref()
1079 kmem_cache_free(btrfs_delayed_ref_head_cachep, head_ref); in add_delayed_ref()
1113 struct btrfs_delayed_ref_head *head_ref; in btrfs_add_delayed_extent_op() local
1125 head_ref = kmem_cache_alloc(btrfs_delayed_ref_head_cachep, GFP_NOFS); in btrfs_add_delayed_extent_op()
1126 if (!head_ref) in btrfs_add_delayed_extent_op()
1129 init_delayed_ref_head(head_ref, &generic_ref, NULL, 0); in btrfs_add_delayed_extent_op()
1130 head_ref->extent_op = extent_op; in btrfs_add_delayed_extent_op()
1136 kmem_cache_free(btrfs_delayed_ref_head_cachep, head_ref); in btrfs_add_delayed_extent_op()
1141 head_ref_ret = add_delayed_ref_head(trans, head_ref, NULL, in btrfs_add_delayed_extent_op()
1146 kmem_cache_free(btrfs_delayed_ref_head_cachep, head_ref); in btrfs_add_delayed_extent_op()