Lines Matching refs:leaf
54 struct extent_buffer *leaf,
163 struct extent_buffer *leaf = path->nodes[0]; in btrfs_lookup_extent_info() local
165 const u32 item_size = btrfs_item_size(leaf, path->slots[0]); in btrfs_lookup_extent_info()
176 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in btrfs_lookup_extent_info()
177 num_refs = btrfs_extent_refs(leaf, ei); in btrfs_lookup_extent_info()
186 extent_flags = btrfs_extent_flags(leaf, ei); in btrfs_lookup_extent_info()
187 owner = btrfs_get_extent_owner_root(fs_info, leaf, path->slots[0]); in btrfs_lookup_extent_info()
418 static u64 hash_extent_data_ref_item(const struct extent_buffer *leaf, in hash_extent_data_ref_item() argument
421 return hash_extent_data_ref(btrfs_extent_data_ref_root(leaf, ref), in hash_extent_data_ref_item()
422 btrfs_extent_data_ref_objectid(leaf, ref), in hash_extent_data_ref_item()
423 btrfs_extent_data_ref_offset(leaf, ref)); in hash_extent_data_ref_item()
426 static bool match_extent_data_ref(const struct extent_buffer *leaf, in match_extent_data_ref() argument
430 if (btrfs_extent_data_ref_root(leaf, ref) != root_objectid || in match_extent_data_ref()
431 btrfs_extent_data_ref_objectid(leaf, ref) != owner || in match_extent_data_ref()
432 btrfs_extent_data_ref_offset(leaf, ref) != offset) in match_extent_data_ref()
446 struct extent_buffer *leaf; in lookup_extent_data_ref() local
479 leaf = path->nodes[0]; in lookup_extent_data_ref()
480 nritems = btrfs_header_nritems(leaf); in lookup_extent_data_ref()
490 leaf = path->nodes[0]; in lookup_extent_data_ref()
491 nritems = btrfs_header_nritems(leaf); in lookup_extent_data_ref()
495 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in lookup_extent_data_ref()
500 ref = btrfs_item_ptr(leaf, path->slots[0], in lookup_extent_data_ref()
503 if (match_extent_data_ref(leaf, ref, root_objectid, in lookup_extent_data_ref()
524 struct extent_buffer *leaf; in insert_extent_data_ref() local
552 leaf = path->nodes[0]; in insert_extent_data_ref()
555 ref = btrfs_item_ptr(leaf, path->slots[0], in insert_extent_data_ref()
558 btrfs_set_shared_data_ref_count(leaf, ref, node->ref_mod); in insert_extent_data_ref()
560 num_refs = btrfs_shared_data_ref_count(leaf, ref); in insert_extent_data_ref()
562 btrfs_set_shared_data_ref_count(leaf, ref, num_refs); in insert_extent_data_ref()
567 ref = btrfs_item_ptr(leaf, path->slots[0], in insert_extent_data_ref()
569 if (match_extent_data_ref(leaf, ref, node->ref_root, in insert_extent_data_ref()
579 leaf = path->nodes[0]; in insert_extent_data_ref()
581 ref = btrfs_item_ptr(leaf, path->slots[0], in insert_extent_data_ref()
584 btrfs_set_extent_data_ref_root(leaf, ref, node->ref_root); in insert_extent_data_ref()
585 btrfs_set_extent_data_ref_objectid(leaf, ref, owner); in insert_extent_data_ref()
586 btrfs_set_extent_data_ref_offset(leaf, ref, offset); in insert_extent_data_ref()
587 btrfs_set_extent_data_ref_count(leaf, ref, node->ref_mod); in insert_extent_data_ref()
589 num_refs = btrfs_extent_data_ref_count(leaf, ref); in insert_extent_data_ref()
591 btrfs_set_extent_data_ref_count(leaf, ref, num_refs); in insert_extent_data_ref()
608 struct extent_buffer *leaf; in remove_extent_data_ref() local
612 leaf = path->nodes[0]; in remove_extent_data_ref()
613 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in remove_extent_data_ref()
616 ref1 = btrfs_item_ptr(leaf, path->slots[0], in remove_extent_data_ref()
618 num_refs = btrfs_extent_data_ref_count(leaf, ref1); in remove_extent_data_ref()
620 ref2 = btrfs_item_ptr(leaf, path->slots[0], in remove_extent_data_ref()
622 num_refs = btrfs_shared_data_ref_count(leaf, ref2); in remove_extent_data_ref()
638 btrfs_set_extent_data_ref_count(leaf, ref1, num_refs); in remove_extent_data_ref()
640 btrfs_set_shared_data_ref_count(leaf, ref2, num_refs); in remove_extent_data_ref()
649 struct extent_buffer *leaf; in extent_data_ref_count() local
655 leaf = path->nodes[0]; in extent_data_ref_count()
656 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in extent_data_ref_count()
663 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_DATA); in extent_data_ref_count()
667 num_refs = btrfs_extent_data_ref_count(leaf, ref1); in extent_data_ref_count()
670 num_refs = btrfs_shared_data_ref_count(leaf, ref2); in extent_data_ref_count()
673 ref1 = btrfs_item_ptr(leaf, path->slots[0], in extent_data_ref_count()
675 num_refs = btrfs_extent_data_ref_count(leaf, ref1); in extent_data_ref_count()
677 ref2 = btrfs_item_ptr(leaf, path->slots[0], in extent_data_ref_count()
679 num_refs = btrfs_shared_data_ref_count(leaf, ref2); in extent_data_ref_count()
807 struct extent_buffer *leaf; in lookup_inline_extent_backref() local
889 leaf = path->nodes[0]; in lookup_inline_extent_backref()
890 item_size = btrfs_item_size(leaf, path->slots[0]); in lookup_inline_extent_backref()
900 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in lookup_inline_extent_backref()
901 flags = btrfs_extent_flags(leaf, ei); in lookup_inline_extent_backref()
919 type = btrfs_get_extent_inline_ref_type(leaf, iref, needed); in lookup_inline_extent_backref()
940 if (match_extent_data_ref(leaf, dref, root_objectid, in lookup_inline_extent_backref()
945 if (hash_extent_data_ref_item(leaf, dref) < in lookup_inline_extent_backref()
950 ref_offset = btrfs_extent_inline_ref_offset(leaf, iref); in lookup_inline_extent_backref()
1040 struct extent_buffer *leaf; in setup_inline_extent_backref() local
1049 leaf = path->nodes[0]; in setup_inline_extent_backref()
1050 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in setup_inline_extent_backref()
1058 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in setup_inline_extent_backref()
1059 refs = btrfs_extent_refs(leaf, ei); in setup_inline_extent_backref()
1061 btrfs_set_extent_refs(leaf, ei, refs); in setup_inline_extent_backref()
1063 __run_delayed_extent_op(extent_op, leaf, ei); in setup_inline_extent_backref()
1066 end = (unsigned long)ei + btrfs_item_size(leaf, path->slots[0]); in setup_inline_extent_backref()
1068 memmove_extent_buffer(leaf, ptr + size, ptr, in setup_inline_extent_backref()
1072 btrfs_set_extent_inline_ref_type(leaf, iref, type); in setup_inline_extent_backref()
1076 btrfs_set_extent_data_ref_root(leaf, dref, root_objectid); in setup_inline_extent_backref()
1077 btrfs_set_extent_data_ref_objectid(leaf, dref, owner); in setup_inline_extent_backref()
1078 btrfs_set_extent_data_ref_offset(leaf, dref, offset); in setup_inline_extent_backref()
1079 btrfs_set_extent_data_ref_count(leaf, dref, refs_to_add); in setup_inline_extent_backref()
1083 btrfs_set_shared_data_ref_count(leaf, sref, refs_to_add); in setup_inline_extent_backref()
1084 btrfs_set_extent_inline_ref_offset(leaf, iref, parent); in setup_inline_extent_backref()
1086 btrfs_set_extent_inline_ref_offset(leaf, iref, parent); in setup_inline_extent_backref()
1088 btrfs_set_extent_inline_ref_offset(leaf, iref, root_objectid); in setup_inline_extent_backref()
1129 struct extent_buffer *leaf = path->nodes[0]; in update_inline_extent_backref() local
1130 struct btrfs_fs_info *fs_info = leaf->fs_info; in update_inline_extent_backref()
1141 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in update_inline_extent_backref()
1142 refs = btrfs_extent_refs(leaf, ei); in update_inline_extent_backref()
1147 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in update_inline_extent_backref()
1152 btrfs_print_leaf(leaf); in update_inline_extent_backref()
1159 btrfs_set_extent_refs(leaf, ei, refs); in update_inline_extent_backref()
1161 __run_delayed_extent_op(extent_op, leaf, ei); in update_inline_extent_backref()
1163 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_ANY); in update_inline_extent_backref()
1173 refs = btrfs_extent_data_ref_count(leaf, dref); in update_inline_extent_backref()
1176 refs = btrfs_shared_data_ref_count(leaf, sref); in update_inline_extent_backref()
1190 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in update_inline_extent_backref()
1192 btrfs_print_leaf(leaf); in update_inline_extent_backref()
1204 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in update_inline_extent_backref()
1209 btrfs_print_leaf(leaf); in update_inline_extent_backref()
1220 btrfs_set_extent_data_ref_count(leaf, dref, refs); in update_inline_extent_backref()
1222 btrfs_set_shared_data_ref_count(leaf, sref, refs); in update_inline_extent_backref()
1225 item_size = btrfs_item_size(leaf, path->slots[0]); in update_inline_extent_backref()
1229 memmove_extent_buffer(leaf, ptr, ptr + size, in update_inline_extent_backref()
1531 struct extent_buffer *leaf; in __btrfs_inc_extent_ref() local
1558 leaf = path->nodes[0]; in __btrfs_inc_extent_ref()
1559 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in __btrfs_inc_extent_ref()
1560 item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in __btrfs_inc_extent_ref()
1561 refs = btrfs_extent_refs(leaf, item); in __btrfs_inc_extent_ref()
1562 btrfs_set_extent_refs(leaf, item, refs + refs_to_add); in __btrfs_inc_extent_ref()
1564 __run_delayed_extent_op(extent_op, leaf, item); in __btrfs_inc_extent_ref()
1673 struct extent_buffer *leaf, in __run_delayed_extent_op() argument
1676 u64 flags = btrfs_extent_flags(leaf, ei); in __run_delayed_extent_op()
1679 btrfs_set_extent_flags(leaf, ei, flags); in __run_delayed_extent_op()
1686 btrfs_set_tree_block_key(leaf, bi, &extent_op->key); in __run_delayed_extent_op()
1699 struct extent_buffer *leaf; in run_delayed_extent_op() local
1764 leaf = path->nodes[0]; in run_delayed_extent_op()
1765 item_size = btrfs_item_size(leaf, path->slots[0]); in run_delayed_extent_op()
1776 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in run_delayed_extent_op()
1777 __run_delayed_extent_op(extent_op, leaf, ei); in run_delayed_extent_op()
2427 struct extent_buffer *leaf; in check_committed_ref() local
2462 leaf = path->nodes[0]; in check_committed_ref()
2463 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in check_committed_ref()
2468 item_size = btrfs_item_size(leaf, path->slots[0]); in check_committed_ref()
2469 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in check_committed_ref()
2478 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_DATA); in check_committed_ref()
2482 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_DATA); in check_committed_ref()
2494 if (btrfs_extent_refs(leaf, ei) != in check_committed_ref()
2495 btrfs_extent_data_ref_count(leaf, ref) || in check_committed_ref()
2496 btrfs_extent_data_ref_root(leaf, ref) != btrfs_root_id(root) || in check_committed_ref()
2497 btrfs_extent_data_ref_objectid(leaf, ref) != btrfs_ino(inode) || in check_committed_ref()
2498 btrfs_extent_data_ref_offset(leaf, ref) != offset) in check_committed_ref()
2525 struct extent_buffer *leaf = path->nodes[0]; in btrfs_cross_ref_exist() local
2527 ASSERT(leaf != NULL); in btrfs_cross_ref_exist()
2528 btrfs_assert_tree_read_locked(leaf); in btrfs_cross_ref_exist()
2533 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_cross_ref_exist()
3103 struct extent_buffer *leaf, int slot) in btrfs_get_extent_owner_root() argument
3115 ei = btrfs_item_ptr(leaf, slot, struct btrfs_extent_item); in btrfs_get_extent_owner_root()
3117 end = (unsigned long)ei + btrfs_item_size(leaf, slot); in btrfs_get_extent_owner_root()
3124 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_ANY); in btrfs_get_extent_owner_root()
3129 return btrfs_extent_owner_ref_root_id(leaf, oref); in btrfs_get_extent_owner_root()
3276 struct extent_buffer *leaf; in __btrfs_free_extent() local
3429 leaf = path->nodes[0]; in __btrfs_free_extent()
3430 item_size = btrfs_item_size(leaf, extent_slot); in __btrfs_free_extent()
3439 ei = btrfs_item_ptr(leaf, extent_slot, in __btrfs_free_extent()
3454 WARN_ON(owner_objectid != btrfs_tree_block_level(leaf, bi)); in __btrfs_free_extent()
3457 refs = btrfs_extent_refs(leaf, ei); in __btrfs_free_extent()
3468 __run_delayed_extent_op(extent_op, leaf, ei); in __btrfs_free_extent()
3481 btrfs_set_extent_refs(leaf, ei, refs); in __btrfs_free_extent()
3497 .generation = btrfs_extent_generation(leaf, ei), in __btrfs_free_extent()
3544 leaf, extent_slot); in __btrfs_free_extent()
5001 struct extent_buffer *leaf; in alloc_reserved_file_extent() local
5034 leaf = path->nodes[0]; in alloc_reserved_file_extent()
5035 extent_item = btrfs_item_ptr(leaf, path->slots[0], in alloc_reserved_file_extent()
5037 btrfs_set_extent_refs(leaf, extent_item, ref_mod); in alloc_reserved_file_extent()
5038 btrfs_set_extent_generation(leaf, extent_item, trans->transid); in alloc_reserved_file_extent()
5039 btrfs_set_extent_flags(leaf, extent_item, in alloc_reserved_file_extent()
5044 btrfs_set_extent_inline_ref_type(leaf, iref, BTRFS_EXTENT_OWNER_REF_KEY); in alloc_reserved_file_extent()
5046 btrfs_set_extent_owner_ref_root_id(leaf, oref, oref_root); in alloc_reserved_file_extent()
5049 btrfs_set_extent_inline_ref_type(leaf, iref, type); in alloc_reserved_file_extent()
5054 btrfs_set_extent_inline_ref_offset(leaf, iref, parent); in alloc_reserved_file_extent()
5055 btrfs_set_shared_data_ref_count(leaf, ref, ref_mod); in alloc_reserved_file_extent()
5059 btrfs_set_extent_data_ref_root(leaf, ref, root_objectid); in alloc_reserved_file_extent()
5060 btrfs_set_extent_data_ref_objectid(leaf, ref, owner); in alloc_reserved_file_extent()
5061 btrfs_set_extent_data_ref_offset(leaf, ref, offset); in alloc_reserved_file_extent()
5062 btrfs_set_extent_data_ref_count(leaf, ref, ref_mod); in alloc_reserved_file_extent()
5082 struct extent_buffer *leaf; in alloc_reserved_tree_block() local
5122 leaf = path->nodes[0]; in alloc_reserved_tree_block()
5123 extent_item = btrfs_item_ptr(leaf, path->slots[0], in alloc_reserved_tree_block()
5125 btrfs_set_extent_refs(leaf, extent_item, 1); in alloc_reserved_tree_block()
5126 btrfs_set_extent_generation(leaf, extent_item, trans->transid); in alloc_reserved_tree_block()
5127 btrfs_set_extent_flags(leaf, extent_item, in alloc_reserved_tree_block()
5134 btrfs_set_tree_block_key(leaf, block_info, &extent_op->key); in alloc_reserved_tree_block()
5135 btrfs_set_tree_block_level(leaf, block_info, level); in alloc_reserved_tree_block()
5140 btrfs_set_extent_inline_ref_type(leaf, iref, in alloc_reserved_tree_block()
5142 btrfs_set_extent_inline_ref_offset(leaf, iref, node->parent); in alloc_reserved_tree_block()
5144 btrfs_set_extent_inline_ref_type(leaf, iref, in alloc_reserved_tree_block()
5146 btrfs_set_extent_inline_ref_offset(leaf, iref, node->ref_root); in alloc_reserved_tree_block()