Lines Matching refs:ref
260 struct btrfs_delayed_ref_node *ref; in btrfs_find_ref_cluster() local
267 ref = NULL; in btrfs_find_ref_cluster()
268 find_ref_head(&delayed_refs->root, start + 1, &ref, 1); in btrfs_find_ref_cluster()
269 if (ref) { in btrfs_find_ref_cluster()
270 node = &ref->rb_node; in btrfs_find_ref_cluster()
276 ref = rb_entry(node, struct btrfs_delayed_ref_node, rb_node); in btrfs_find_ref_cluster()
277 if (btrfs_delayed_ref_is_head(ref)) { in btrfs_find_ref_cluster()
278 head = btrfs_delayed_node_to_head(ref); in btrfs_find_ref_cluster()
370 struct btrfs_delayed_ref_head *ref; in update_existing_head_ref() local
373 ref = btrfs_delayed_node_to_head(update); in update_existing_head_ref()
374 BUG_ON(existing_ref->is_data != ref->is_data); in update_existing_head_ref()
376 if (ref->must_insert_reserved) { in update_existing_head_ref()
384 existing_ref->must_insert_reserved = ref->must_insert_reserved; in update_existing_head_ref()
394 if (ref->extent_op) { in update_existing_head_ref()
396 existing_ref->extent_op = ref->extent_op; in update_existing_head_ref()
398 if (ref->extent_op->update_key) { in update_existing_head_ref()
400 &ref->extent_op->key, in update_existing_head_ref()
401 sizeof(ref->extent_op->key)); in update_existing_head_ref()
404 if (ref->extent_op->update_flags) { in update_existing_head_ref()
406 ref->extent_op->flags_to_set; in update_existing_head_ref()
409 kfree(ref->extent_op); in update_existing_head_ref()
425 struct btrfs_delayed_ref_node *ref, in add_delayed_ref_head() argument
463 atomic_set(&ref->refs, 1); in add_delayed_ref_head()
464 ref->bytenr = bytenr; in add_delayed_ref_head()
465 ref->num_bytes = num_bytes; in add_delayed_ref_head()
466 ref->ref_mod = count_mod; in add_delayed_ref_head()
467 ref->type = 0; in add_delayed_ref_head()
468 ref->action = 0; in add_delayed_ref_head()
469 ref->is_head = 1; in add_delayed_ref_head()
470 ref->in_tree = 1; in add_delayed_ref_head()
471 ref->seq = 0; in add_delayed_ref_head()
473 head_ref = btrfs_delayed_node_to_head(ref); in add_delayed_ref_head()
480 trace_btrfs_delayed_ref_head(ref, head_ref, action); in add_delayed_ref_head()
482 existing = tree_insert(&delayed_refs->root, &ref->rb_node); in add_delayed_ref_head()
485 update_existing_head_ref(existing, ref); in add_delayed_ref_head()
504 struct btrfs_delayed_ref_node *ref, in add_delayed_tree_ref() argument
520 atomic_set(&ref->refs, 1); in add_delayed_tree_ref()
521 ref->bytenr = bytenr; in add_delayed_tree_ref()
522 ref->num_bytes = num_bytes; in add_delayed_tree_ref()
523 ref->ref_mod = 1; in add_delayed_tree_ref()
524 ref->action = action; in add_delayed_tree_ref()
525 ref->is_head = 0; in add_delayed_tree_ref()
526 ref->in_tree = 1; in add_delayed_tree_ref()
530 ref->seq = seq; in add_delayed_tree_ref()
532 full_ref = btrfs_delayed_node_to_tree_ref(ref); in add_delayed_tree_ref()
536 ref->type = BTRFS_SHARED_BLOCK_REF_KEY; in add_delayed_tree_ref()
538 ref->type = BTRFS_TREE_BLOCK_REF_KEY; in add_delayed_tree_ref()
541 trace_btrfs_delayed_tree_ref(ref, full_ref, action); in add_delayed_tree_ref()
543 existing = tree_insert(&delayed_refs->root, &ref->rb_node); in add_delayed_tree_ref()
546 update_existing_ref(trans, delayed_refs, existing, ref); in add_delayed_tree_ref()
563 struct btrfs_delayed_ref_node *ref, in add_delayed_data_ref() argument
579 atomic_set(&ref->refs, 1); in add_delayed_data_ref()
580 ref->bytenr = bytenr; in add_delayed_data_ref()
581 ref->num_bytes = num_bytes; in add_delayed_data_ref()
582 ref->ref_mod = 1; in add_delayed_data_ref()
583 ref->action = action; in add_delayed_data_ref()
584 ref->is_head = 0; in add_delayed_data_ref()
585 ref->in_tree = 1; in add_delayed_data_ref()
589 ref->seq = seq; in add_delayed_data_ref()
591 full_ref = btrfs_delayed_node_to_data_ref(ref); in add_delayed_data_ref()
595 ref->type = BTRFS_SHARED_DATA_REF_KEY; in add_delayed_data_ref()
597 ref->type = BTRFS_EXTENT_DATA_REF_KEY; in add_delayed_data_ref()
602 trace_btrfs_delayed_data_ref(ref, full_ref, action); in add_delayed_data_ref()
604 existing = tree_insert(&delayed_refs->root, &ref->rb_node); in add_delayed_data_ref()
607 update_existing_ref(trans, delayed_refs, existing, ref); in add_delayed_data_ref()
631 struct btrfs_delayed_tree_ref *ref; in btrfs_add_delayed_tree_ref() local
636 ref = kmalloc(sizeof(*ref), GFP_NOFS); in btrfs_add_delayed_tree_ref()
637 if (!ref) in btrfs_add_delayed_tree_ref()
642 kfree(ref); in btrfs_add_delayed_tree_ref()
658 add_delayed_tree_ref(fs_info, trans, &ref->node, bytenr, in btrfs_add_delayed_tree_ref()
679 struct btrfs_delayed_data_ref *ref; in btrfs_add_delayed_data_ref() local
684 ref = kmalloc(sizeof(*ref), GFP_NOFS); in btrfs_add_delayed_data_ref()
685 if (!ref) in btrfs_add_delayed_data_ref()
690 kfree(ref); in btrfs_add_delayed_data_ref()
706 add_delayed_data_ref(fs_info, trans, &ref->node, bytenr, in btrfs_add_delayed_data_ref()
751 struct btrfs_delayed_ref_node *ref; in btrfs_find_delayed_ref_head() local
755 ref = find_ref_head(&delayed_refs->root, bytenr, NULL, 0); in btrfs_find_delayed_ref_head()
756 if (ref) in btrfs_find_delayed_ref_head()
757 return btrfs_delayed_node_to_head(ref); in btrfs_find_delayed_ref_head()