Lines Matching refs:ref

427 				    struct btrfs_delayed_ref_node *ref)  in drop_delayed_ref()  argument
430 rb_erase_cached(&ref->ref_node, &head->ref_tree); in drop_delayed_ref()
431 RB_CLEAR_NODE(&ref->ref_node); in drop_delayed_ref()
432 if (!list_empty(&ref->add_list)) in drop_delayed_ref()
433 list_del(&ref->add_list); in drop_delayed_ref()
434 btrfs_put_delayed_ref(ref); in drop_delayed_ref()
440 struct btrfs_delayed_ref_node *ref, in merge_ref() argument
444 struct rb_node *node = rb_next(&ref->ref_node); in merge_ref()
454 if (comp_refs(ref, next, false)) in merge_ref()
457 if (ref->action == next->action) { in merge_ref()
460 if (ref->ref_mod < next->ref_mod) { in merge_ref()
461 swap(ref, next); in merge_ref()
468 ref->ref_mod += mod; in merge_ref()
469 if (ref->ref_mod == 0) { in merge_ref()
470 drop_delayed_ref(delayed_refs, head, ref); in merge_ref()
476 WARN_ON(ref->type == BTRFS_TREE_BLOCK_REF_KEY || in merge_ref()
477 ref->type == BTRFS_SHARED_BLOCK_REF_KEY); in merge_ref()
488 struct btrfs_delayed_ref_node *ref; in btrfs_merge_delayed_refs() local
505 ref = rb_entry(node, struct btrfs_delayed_ref_node, ref_node); in btrfs_merge_delayed_refs()
506 if (seq && ref->seq >= seq) in btrfs_merge_delayed_refs()
508 if (merge_ref(delayed_refs, head, ref, seq)) in btrfs_merge_delayed_refs()
589 struct btrfs_delayed_ref_node *ref) in insert_delayed_ref() argument
595 exist = tree_insert(&href->ref_tree, ref); in insert_delayed_ref()
597 if (ref->action == BTRFS_ADD_DELAYED_REF) in insert_delayed_ref()
598 list_add_tail(&ref->add_list, &href->ref_add_list); in insert_delayed_ref()
605 if (exist->action == ref->action) { in insert_delayed_ref()
606 mod = ref->ref_mod; in insert_delayed_ref()
609 if (exist->ref_mod < ref->ref_mod) { in insert_delayed_ref()
610 exist->action = ref->action; in insert_delayed_ref()
612 exist->ref_mod = ref->ref_mod; in insert_delayed_ref()
613 if (ref->action == BTRFS_ADD_DELAYED_REF) in insert_delayed_ref()
616 else if (ref->action == BTRFS_DROP_DELAYED_REF) { in insert_delayed_ref()
623 mod = -ref->ref_mod; in insert_delayed_ref()
865 struct btrfs_delayed_ref_node *ref, in init_delayed_ref_common() argument
877 refcount_set(&ref->refs, 1); in init_delayed_ref_common()
878 ref->bytenr = bytenr; in init_delayed_ref_common()
879 ref->num_bytes = num_bytes; in init_delayed_ref_common()
880 ref->ref_mod = 1; in init_delayed_ref_common()
881 ref->action = action; in init_delayed_ref_common()
882 ref->seq = seq; in init_delayed_ref_common()
883 ref->type = ref_type; in init_delayed_ref_common()
884 RB_CLEAR_NODE(&ref->ref_node); in init_delayed_ref_common()
885 INIT_LIST_HEAD(&ref->add_list); in init_delayed_ref_common()
898 struct btrfs_delayed_tree_ref *ref; in btrfs_add_delayed_tree_ref() local
915 ref = kmem_cache_alloc(btrfs_delayed_tree_ref_cachep, GFP_NOFS); in btrfs_add_delayed_tree_ref()
916 if (!ref) in btrfs_add_delayed_tree_ref()
921 kmem_cache_free(btrfs_delayed_tree_ref_cachep, ref); in btrfs_add_delayed_tree_ref()
929 kmem_cache_free(btrfs_delayed_tree_ref_cachep, ref); in btrfs_add_delayed_tree_ref()
940 init_delayed_ref_common(fs_info, &ref->node, bytenr, num_bytes, in btrfs_add_delayed_tree_ref()
943 ref->root = generic_ref->tree_ref.owning_root; in btrfs_add_delayed_tree_ref()
944 ref->parent = parent; in btrfs_add_delayed_tree_ref()
945 ref->level = level; in btrfs_add_delayed_tree_ref()
962 merged = insert_delayed_ref(delayed_refs, head_ref, &ref->node); in btrfs_add_delayed_tree_ref()
971 trace_add_delayed_tree_ref(fs_info, &ref->node, ref, in btrfs_add_delayed_tree_ref()
975 kmem_cache_free(btrfs_delayed_tree_ref_cachep, ref); in btrfs_add_delayed_tree_ref()
991 struct btrfs_delayed_data_ref *ref; in btrfs_add_delayed_data_ref() local
1007 ref = kmem_cache_alloc(btrfs_delayed_data_ref_cachep, GFP_NOFS); in btrfs_add_delayed_data_ref()
1008 if (!ref) in btrfs_add_delayed_data_ref()
1015 init_delayed_ref_common(fs_info, &ref->node, bytenr, num_bytes, in btrfs_add_delayed_data_ref()
1017 ref->root = ref_root; in btrfs_add_delayed_data_ref()
1018 ref->parent = parent; in btrfs_add_delayed_data_ref()
1019 ref->objectid = owner; in btrfs_add_delayed_data_ref()
1020 ref->offset = offset; in btrfs_add_delayed_data_ref()
1025 kmem_cache_free(btrfs_delayed_data_ref_cachep, ref); in btrfs_add_delayed_data_ref()
1033 kmem_cache_free(btrfs_delayed_data_ref_cachep, ref); in btrfs_add_delayed_data_ref()
1054 merged = insert_delayed_ref(delayed_refs, head_ref, &ref->node); in btrfs_add_delayed_data_ref()
1063 trace_add_delayed_data_ref(trans->fs_info, &ref->node, ref, in btrfs_add_delayed_data_ref()
1067 kmem_cache_free(btrfs_delayed_data_ref_cachep, ref); in btrfs_add_delayed_data_ref()