Lines Matching refs:eb
37 static int check_extent_in_eb(struct btrfs_key *key, struct extent_buffer *eb, in check_extent_in_eb() argument
45 if (!btrfs_file_extent_compression(eb, fi) && in check_extent_in_eb()
46 !btrfs_file_extent_encryption(eb, fi) && in check_extent_in_eb()
47 !btrfs_file_extent_other_encoding(eb, fi)) { in check_extent_in_eb()
51 data_offset = btrfs_file_extent_offset(eb, fi); in check_extent_in_eb()
52 data_len = btrfs_file_extent_num_bytes(eb, fi); in check_extent_in_eb()
82 static int find_extent_in_eb(struct extent_buffer *eb, u64 wanted_disk_byte, in find_extent_in_eb() argument
99 nritems = btrfs_header_nritems(eb); in find_extent_in_eb()
101 btrfs_item_key_to_cpu(eb, &key, slot); in find_extent_in_eb()
104 fi = btrfs_item_ptr(eb, slot, struct btrfs_file_extent_item); in find_extent_in_eb()
105 extent_type = btrfs_file_extent_type(eb, fi); in find_extent_in_eb()
109 disk_byte = btrfs_file_extent_disk_bytenr(eb, fi); in find_extent_in_eb()
113 ret = check_extent_in_eb(&key, eb, fi, extent_item_pos, eie); in find_extent_in_eb()
254 struct extent_buffer *eb; in add_all_parents() local
264 eb = path->nodes[level]; in add_all_parents()
265 ret = ulist_add(parents, eb->start, 0, GFP_NOFS); in add_all_parents()
284 eb = path->nodes[0]; in add_all_parents()
287 btrfs_item_key_to_cpu(eb, &key, slot); in add_all_parents()
293 fi = btrfs_item_ptr(eb, slot, struct btrfs_file_extent_item); in add_all_parents()
294 disk_byte = btrfs_file_extent_disk_bytenr(eb, fi); in add_all_parents()
301 ret = check_extent_in_eb(&key, eb, fi, in add_all_parents()
309 ret = ulist_add_merge_ptr(parents, eb->start, in add_all_parents()
346 struct extent_buffer *eb; in __resolve_indirect_ref() local
402 eb = path->nodes[level]; in __resolve_indirect_ref()
403 while (!eb) { in __resolve_indirect_ref()
409 eb = path->nodes[level]; in __resolve_indirect_ref()
524 struct extent_buffer *eb; in __add_missing_keys() local
535 eb = read_tree_block(fs_info->tree_root, ref->wanted_disk_byte, in __add_missing_keys()
537 if (IS_ERR(eb)) { in __add_missing_keys()
538 return PTR_ERR(eb); in __add_missing_keys()
539 } else if (!extent_buffer_uptodate(eb)) { in __add_missing_keys()
540 free_extent_buffer(eb); in __add_missing_keys()
543 btrfs_tree_read_lock(eb); in __add_missing_keys()
544 if (btrfs_header_level(eb) == 0) in __add_missing_keys()
545 btrfs_item_key_to_cpu(eb, &ref->key_for_search, 0); in __add_missing_keys()
547 btrfs_node_key_to_cpu(eb, &ref->key_for_search, 0); in __add_missing_keys()
548 btrfs_tree_read_unlock(eb); in __add_missing_keys()
549 free_extent_buffer(eb); in __add_missing_keys()
1083 struct extent_buffer *eb; local
1085 eb = read_tree_block(fs_info->extent_root,
1087 if (IS_ERR(eb)) {
1088 ret = PTR_ERR(eb);
1090 } else if (!extent_buffer_uptodate(eb)) {
1091 free_extent_buffer(eb);
1095 btrfs_tree_read_lock(eb);
1096 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1097 ret = find_extent_in_eb(eb, bytenr,
1099 btrfs_tree_read_unlock_blocking(eb);
1100 free_extent_buffer(eb);
1419 struct extent_buffer *eb = eb_in; local
1431 read_extent_buffer(eb, dest + bytes_left,
1433 if (eb != eb_in) {
1435 btrfs_tree_read_unlock_blocking(eb);
1436 free_extent_buffer(eb);
1452 eb = path->nodes[0];
1454 if (eb != eb_in) {
1456 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1461 iref = btrfs_item_ptr(eb, slot, struct btrfs_inode_ref);
1463 name_len = btrfs_inode_ref_name_len(eb, iref);
1494 struct extent_buffer *eb; local
1527 eb = path->nodes[0];
1528 item_size = btrfs_item_size_nr(eb, path->slots[0]);
1531 ei = btrfs_item_ptr(eb, path->slots[0], struct btrfs_extent_item);
1532 flags = btrfs_extent_flags(eb, ei);
1561 static int __get_extent_inline_ref(unsigned long *ptr, struct extent_buffer *eb, argument
1573 flags = btrfs_extent_flags(eb, ei);
1595 *out_type = btrfs_extent_inline_ref_type(eb, *out_eiref);
1612 int tree_backref_for_extent(unsigned long *ptr, struct extent_buffer *eb, argument
1624 ret = __get_extent_inline_ref(ptr, eb, key, ei, item_size,
1638 *out_root = btrfs_extent_inline_ref_offset(eb, eiref);
1644 *out_level = btrfs_tree_block_level(eb, info);
1780 struct extent_buffer *eb, void *ctx);
1793 struct extent_buffer *eb; local
1813 eb = btrfs_clone_extent_buffer(path->nodes[0]);
1814 if (!eb) {
1818 extent_buffer_get(eb);
1819 btrfs_tree_read_lock(eb);
1820 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1824 iref = btrfs_item_ptr(eb, slot, struct btrfs_inode_ref);
1826 for (cur = 0; cur < btrfs_item_size(eb, item); cur += len) {
1827 name_len = btrfs_inode_ref_name_len(eb, iref);
1833 (unsigned long)(iref + 1), eb, ctx);
1839 btrfs_tree_read_unlock_blocking(eb);
1840 free_extent_buffer(eb);
1857 struct extent_buffer *eb; local
1875 eb = btrfs_clone_extent_buffer(path->nodes[0]);
1876 if (!eb) {
1880 extent_buffer_get(eb);
1882 btrfs_tree_read_lock(eb);
1883 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1886 item_size = btrfs_item_size_nr(eb, slot);
1887 ptr = btrfs_item_ptr_offset(eb, slot);
1894 parent = btrfs_inode_extref_parent(eb, extref);
1895 name_len = btrfs_inode_extref_name_len(eb, extref);
1897 (unsigned long)&extref->name, eb, ctx);
1901 cur_offset += btrfs_inode_extref_name_len(eb, extref);
1904 btrfs_tree_read_unlock_blocking(eb);
1905 free_extent_buffer(eb);
1940 struct extent_buffer *eb, void *ctx) argument
1954 name_off, eb, inum, fspath_min, bytes_left);