Lines Matching refs:leaf
52 struct extent_buffer *leaf,
149 struct extent_buffer *leaf = path->nodes[0]; in btrfs_lookup_extent_info() local
151 const u32 item_size = btrfs_item_size(leaf, path->slots[0]); in btrfs_lookup_extent_info()
162 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in btrfs_lookup_extent_info()
163 num_refs = btrfs_extent_refs(leaf, ei); in btrfs_lookup_extent_info()
172 extent_flags = btrfs_extent_flags(leaf, ei); in btrfs_lookup_extent_info()
173 owner = btrfs_get_extent_owner_root(fs_info, leaf, path->slots[0]); in btrfs_lookup_extent_info()
404 static u64 hash_extent_data_ref_item(const struct extent_buffer *leaf, in hash_extent_data_ref_item() argument
407 return hash_extent_data_ref(btrfs_extent_data_ref_root(leaf, ref), in hash_extent_data_ref_item()
408 btrfs_extent_data_ref_objectid(leaf, ref), in hash_extent_data_ref_item()
409 btrfs_extent_data_ref_offset(leaf, ref)); in hash_extent_data_ref_item()
412 static bool match_extent_data_ref(const struct extent_buffer *leaf, in match_extent_data_ref() argument
416 if (btrfs_extent_data_ref_root(leaf, ref) != root_objectid || in match_extent_data_ref()
417 btrfs_extent_data_ref_objectid(leaf, ref) != owner || in match_extent_data_ref()
418 btrfs_extent_data_ref_offset(leaf, ref) != offset) in match_extent_data_ref()
432 struct extent_buffer *leaf; in lookup_extent_data_ref() local
459 leaf = path->nodes[0]; in lookup_extent_data_ref()
460 nritems = btrfs_header_nritems(leaf); in lookup_extent_data_ref()
470 leaf = path->nodes[0]; in lookup_extent_data_ref()
471 nritems = btrfs_header_nritems(leaf); in lookup_extent_data_ref()
475 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in lookup_extent_data_ref()
480 ref = btrfs_item_ptr(leaf, path->slots[0], in lookup_extent_data_ref()
483 if (match_extent_data_ref(leaf, ref, root_objectid, in lookup_extent_data_ref()
505 struct extent_buffer *leaf; in insert_extent_data_ref() local
527 leaf = path->nodes[0]; in insert_extent_data_ref()
530 ref = btrfs_item_ptr(leaf, path->slots[0], in insert_extent_data_ref()
533 btrfs_set_shared_data_ref_count(leaf, ref, node->ref_mod); in insert_extent_data_ref()
535 num_refs = btrfs_shared_data_ref_count(leaf, ref); in insert_extent_data_ref()
537 btrfs_set_shared_data_ref_count(leaf, ref, num_refs); in insert_extent_data_ref()
542 ref = btrfs_item_ptr(leaf, path->slots[0], in insert_extent_data_ref()
544 if (match_extent_data_ref(leaf, ref, node->ref_root, in insert_extent_data_ref()
554 leaf = path->nodes[0]; in insert_extent_data_ref()
556 ref = btrfs_item_ptr(leaf, path->slots[0], in insert_extent_data_ref()
559 btrfs_set_extent_data_ref_root(leaf, ref, node->ref_root); in insert_extent_data_ref()
560 btrfs_set_extent_data_ref_objectid(leaf, ref, owner); in insert_extent_data_ref()
561 btrfs_set_extent_data_ref_offset(leaf, ref, offset); in insert_extent_data_ref()
562 btrfs_set_extent_data_ref_count(leaf, ref, node->ref_mod); in insert_extent_data_ref()
564 num_refs = btrfs_extent_data_ref_count(leaf, ref); in insert_extent_data_ref()
566 btrfs_set_extent_data_ref_count(leaf, ref, num_refs); in insert_extent_data_ref()
583 struct extent_buffer *leaf; in remove_extent_data_ref() local
587 leaf = path->nodes[0]; in remove_extent_data_ref()
588 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in remove_extent_data_ref()
591 ref1 = btrfs_item_ptr(leaf, path->slots[0], in remove_extent_data_ref()
593 num_refs = btrfs_extent_data_ref_count(leaf, ref1); in remove_extent_data_ref()
595 ref2 = btrfs_item_ptr(leaf, path->slots[0], in remove_extent_data_ref()
597 num_refs = btrfs_shared_data_ref_count(leaf, ref2); in remove_extent_data_ref()
613 btrfs_set_extent_data_ref_count(leaf, ref1, num_refs); in remove_extent_data_ref()
615 btrfs_set_shared_data_ref_count(leaf, ref2, num_refs); in remove_extent_data_ref()
624 struct extent_buffer *leaf; in extent_data_ref_count() local
630 leaf = path->nodes[0]; in extent_data_ref_count()
631 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in extent_data_ref_count()
638 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_DATA); in extent_data_ref_count()
642 num_refs = btrfs_extent_data_ref_count(leaf, ref1); in extent_data_ref_count()
645 num_refs = btrfs_shared_data_ref_count(leaf, ref2); in extent_data_ref_count()
648 ref1 = btrfs_item_ptr(leaf, path->slots[0], in extent_data_ref_count()
650 num_refs = btrfs_extent_data_ref_count(leaf, ref1); in extent_data_ref_count()
652 ref2 = btrfs_item_ptr(leaf, path->slots[0], in extent_data_ref_count()
654 num_refs = btrfs_shared_data_ref_count(leaf, ref2); in extent_data_ref_count()
770 struct extent_buffer *leaf; in lookup_inline_extent_backref() local
846 leaf = path->nodes[0]; in lookup_inline_extent_backref()
847 item_size = btrfs_item_size(leaf, path->slots[0]); in lookup_inline_extent_backref()
857 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in lookup_inline_extent_backref()
858 flags = btrfs_extent_flags(leaf, ei); in lookup_inline_extent_backref()
876 type = btrfs_get_extent_inline_ref_type(leaf, iref, needed); in lookup_inline_extent_backref()
897 if (match_extent_data_ref(leaf, dref, root_objectid, in lookup_inline_extent_backref()
902 if (hash_extent_data_ref_item(leaf, dref) < in lookup_inline_extent_backref()
907 ref_offset = btrfs_extent_inline_ref_offset(leaf, iref); in lookup_inline_extent_backref()
997 struct extent_buffer *leaf; in setup_inline_extent_backref() local
1006 leaf = path->nodes[0]; in setup_inline_extent_backref()
1007 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in setup_inline_extent_backref()
1015 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in setup_inline_extent_backref()
1016 refs = btrfs_extent_refs(leaf, ei); in setup_inline_extent_backref()
1018 btrfs_set_extent_refs(leaf, ei, refs); in setup_inline_extent_backref()
1020 __run_delayed_extent_op(extent_op, leaf, ei); in setup_inline_extent_backref()
1023 end = (unsigned long)ei + btrfs_item_size(leaf, path->slots[0]); in setup_inline_extent_backref()
1025 memmove_extent_buffer(leaf, ptr + size, ptr, in setup_inline_extent_backref()
1029 btrfs_set_extent_inline_ref_type(leaf, iref, type); in setup_inline_extent_backref()
1033 btrfs_set_extent_data_ref_root(leaf, dref, root_objectid); in setup_inline_extent_backref()
1034 btrfs_set_extent_data_ref_objectid(leaf, dref, owner); in setup_inline_extent_backref()
1035 btrfs_set_extent_data_ref_offset(leaf, dref, offset); in setup_inline_extent_backref()
1036 btrfs_set_extent_data_ref_count(leaf, dref, refs_to_add); in setup_inline_extent_backref()
1040 btrfs_set_shared_data_ref_count(leaf, sref, refs_to_add); in setup_inline_extent_backref()
1041 btrfs_set_extent_inline_ref_offset(leaf, iref, parent); in setup_inline_extent_backref()
1043 btrfs_set_extent_inline_ref_offset(leaf, iref, parent); in setup_inline_extent_backref()
1045 btrfs_set_extent_inline_ref_offset(leaf, iref, root_objectid); in setup_inline_extent_backref()
1086 struct extent_buffer *leaf = path->nodes[0]; in update_inline_extent_backref() local
1087 struct btrfs_fs_info *fs_info = leaf->fs_info; in update_inline_extent_backref()
1098 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in update_inline_extent_backref()
1099 refs = btrfs_extent_refs(leaf, ei); in update_inline_extent_backref()
1104 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in update_inline_extent_backref()
1109 btrfs_print_leaf(leaf); in update_inline_extent_backref()
1116 btrfs_set_extent_refs(leaf, ei, refs); in update_inline_extent_backref()
1118 __run_delayed_extent_op(extent_op, leaf, ei); in update_inline_extent_backref()
1120 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_ANY); in update_inline_extent_backref()
1130 refs = btrfs_extent_data_ref_count(leaf, dref); in update_inline_extent_backref()
1133 refs = btrfs_shared_data_ref_count(leaf, sref); in update_inline_extent_backref()
1147 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in update_inline_extent_backref()
1149 btrfs_print_leaf(leaf); in update_inline_extent_backref()
1161 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in update_inline_extent_backref()
1166 btrfs_print_leaf(leaf); in update_inline_extent_backref()
1177 btrfs_set_extent_data_ref_count(leaf, dref, refs); in update_inline_extent_backref()
1179 btrfs_set_shared_data_ref_count(leaf, sref, refs); in update_inline_extent_backref()
1182 item_size = btrfs_item_size(leaf, path->slots[0]); in update_inline_extent_backref()
1186 memmove_extent_buffer(leaf, ptr, ptr + size, in update_inline_extent_backref()
1487 struct extent_buffer *leaf; in __btrfs_inc_extent_ref() local
1514 leaf = path->nodes[0]; in __btrfs_inc_extent_ref()
1515 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in __btrfs_inc_extent_ref()
1516 item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in __btrfs_inc_extent_ref()
1517 refs = btrfs_extent_refs(leaf, item); in __btrfs_inc_extent_ref()
1518 btrfs_set_extent_refs(leaf, item, refs + refs_to_add); in __btrfs_inc_extent_ref()
1520 __run_delayed_extent_op(extent_op, leaf, item); in __btrfs_inc_extent_ref()
1607 struct extent_buffer *leaf, in __run_delayed_extent_op() argument
1610 u64 flags = btrfs_extent_flags(leaf, ei); in __run_delayed_extent_op()
1613 btrfs_set_extent_flags(leaf, ei, flags); in __run_delayed_extent_op()
1620 btrfs_set_tree_block_key(leaf, bi, &extent_op->key); in __run_delayed_extent_op()
1633 struct extent_buffer *leaf; in run_delayed_extent_op() local
1692 leaf = path->nodes[0]; in run_delayed_extent_op()
1693 item_size = btrfs_item_size(leaf, path->slots[0]); in run_delayed_extent_op()
1704 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in run_delayed_extent_op()
1705 __run_delayed_extent_op(extent_op, leaf, ei); in run_delayed_extent_op()
2341 struct extent_buffer *leaf; in check_committed_ref() local
2370 leaf = path->nodes[0]; in check_committed_ref()
2371 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in check_committed_ref()
2376 item_size = btrfs_item_size(leaf, path->slots[0]); in check_committed_ref()
2377 ei = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_extent_item); in check_committed_ref()
2386 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_DATA); in check_committed_ref()
2390 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_DATA); in check_committed_ref()
2402 if (btrfs_extent_refs(leaf, ei) != in check_committed_ref()
2403 btrfs_extent_data_ref_count(leaf, ref) || in check_committed_ref()
2404 btrfs_extent_data_ref_root(leaf, ref) != btrfs_root_id(root) || in check_committed_ref()
2405 btrfs_extent_data_ref_objectid(leaf, ref) != btrfs_ino(inode) || in check_committed_ref()
2406 btrfs_extent_data_ref_offset(leaf, ref) != offset) in check_committed_ref()
2433 struct extent_buffer *leaf = path->nodes[0]; in btrfs_cross_ref_exist() local
2435 ASSERT(leaf != NULL); in btrfs_cross_ref_exist()
2436 btrfs_assert_tree_read_locked(leaf); in btrfs_cross_ref_exist()
2441 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_cross_ref_exist()
2941 struct extent_buffer *leaf, int slot) in btrfs_get_extent_owner_root() argument
2953 ei = btrfs_item_ptr(leaf, slot, struct btrfs_extent_item); in btrfs_get_extent_owner_root()
2955 end = (unsigned long)ei + btrfs_item_size(leaf, slot); in btrfs_get_extent_owner_root()
2962 type = btrfs_get_extent_inline_ref_type(leaf, iref, BTRFS_REF_TYPE_ANY); in btrfs_get_extent_owner_root()
2967 return btrfs_extent_owner_ref_root_id(leaf, oref); in btrfs_get_extent_owner_root()
3091 struct extent_buffer *leaf; in __btrfs_free_extent() local
3241 leaf = path->nodes[0]; in __btrfs_free_extent()
3242 item_size = btrfs_item_size(leaf, extent_slot); in __btrfs_free_extent()
3251 ei = btrfs_item_ptr(leaf, extent_slot, in __btrfs_free_extent()
3267 WARN_ON(owner_objectid != btrfs_tree_block_level(leaf, bi)); in __btrfs_free_extent()
3270 refs = btrfs_extent_refs(leaf, ei); in __btrfs_free_extent()
3282 __run_delayed_extent_op(extent_op, leaf, ei); in __btrfs_free_extent()
3296 btrfs_set_extent_refs(leaf, ei, refs); in __btrfs_free_extent()
3312 .generation = btrfs_extent_generation(leaf, ei), in __btrfs_free_extent()
3362 leaf, extent_slot); in __btrfs_free_extent()
4816 struct extent_buffer *leaf; in alloc_reserved_file_extent() local
4842 leaf = path->nodes[0]; in alloc_reserved_file_extent()
4843 extent_item = btrfs_item_ptr(leaf, path->slots[0], in alloc_reserved_file_extent()
4845 btrfs_set_extent_refs(leaf, extent_item, ref_mod); in alloc_reserved_file_extent()
4846 btrfs_set_extent_generation(leaf, extent_item, trans->transid); in alloc_reserved_file_extent()
4847 btrfs_set_extent_flags(leaf, extent_item, in alloc_reserved_file_extent()
4852 btrfs_set_extent_inline_ref_type(leaf, iref, BTRFS_EXTENT_OWNER_REF_KEY); in alloc_reserved_file_extent()
4854 btrfs_set_extent_owner_ref_root_id(leaf, oref, oref_root); in alloc_reserved_file_extent()
4857 btrfs_set_extent_inline_ref_type(leaf, iref, type); in alloc_reserved_file_extent()
4862 btrfs_set_extent_inline_ref_offset(leaf, iref, parent); in alloc_reserved_file_extent()
4863 btrfs_set_shared_data_ref_count(leaf, ref, ref_mod); in alloc_reserved_file_extent()
4867 btrfs_set_extent_data_ref_root(leaf, ref, root_objectid); in alloc_reserved_file_extent()
4868 btrfs_set_extent_data_ref_objectid(leaf, ref, owner); in alloc_reserved_file_extent()
4869 btrfs_set_extent_data_ref_offset(leaf, ref, offset); in alloc_reserved_file_extent()
4870 btrfs_set_extent_data_ref_count(leaf, ref, ref_mod); in alloc_reserved_file_extent()
4890 struct extent_buffer *leaf; in alloc_reserved_tree_block() local
4920 leaf = path->nodes[0]; in alloc_reserved_tree_block()
4921 extent_item = btrfs_item_ptr(leaf, path->slots[0], in alloc_reserved_tree_block()
4923 btrfs_set_extent_refs(leaf, extent_item, 1); in alloc_reserved_tree_block()
4924 btrfs_set_extent_generation(leaf, extent_item, trans->transid); in alloc_reserved_tree_block()
4925 btrfs_set_extent_flags(leaf, extent_item, in alloc_reserved_tree_block()
4932 btrfs_set_tree_block_key(leaf, block_info, &extent_op->key); in alloc_reserved_tree_block()
4933 btrfs_set_tree_block_level(leaf, block_info, level); in alloc_reserved_tree_block()
4938 btrfs_set_extent_inline_ref_type(leaf, iref, in alloc_reserved_tree_block()
4940 btrfs_set_extent_inline_ref_offset(leaf, iref, node->parent); in alloc_reserved_tree_block()
4942 btrfs_set_extent_inline_ref_type(leaf, iref, in alloc_reserved_tree_block()
4944 btrfs_set_extent_inline_ref_offset(leaf, iref, node->ref_root); in alloc_reserved_tree_block()