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()
1078 struct extent_buffer *eb; local
1080 eb = read_tree_block(fs_info->extent_root,
1082 if (IS_ERR(eb)) {
1083 ret = PTR_ERR(eb);
1085 } else if (!extent_buffer_uptodate(eb)) {
1086 free_extent_buffer(eb);
1090 btrfs_tree_read_lock(eb);
1091 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1092 ret = find_extent_in_eb(eb, bytenr,
1094 btrfs_tree_read_unlock_blocking(eb);
1095 free_extent_buffer(eb);
1405 struct extent_buffer *eb = eb_in; local
1417 read_extent_buffer(eb, dest + bytes_left,
1419 if (eb != eb_in) {
1421 btrfs_tree_read_unlock_blocking(eb);
1422 free_extent_buffer(eb);
1438 eb = path->nodes[0];
1440 if (eb != eb_in) {
1442 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1447 iref = btrfs_item_ptr(eb, slot, struct btrfs_inode_ref);
1449 name_len = btrfs_inode_ref_name_len(eb, iref);
1480 struct extent_buffer *eb; local
1513 eb = path->nodes[0];
1514 item_size = btrfs_item_size_nr(eb, path->slots[0]);
1517 ei = btrfs_item_ptr(eb, path->slots[0], struct btrfs_extent_item);
1518 flags = btrfs_extent_flags(eb, ei);
1547 static int __get_extent_inline_ref(unsigned long *ptr, struct extent_buffer *eb, argument
1559 flags = btrfs_extent_flags(eb, ei);
1581 *out_type = btrfs_extent_inline_ref_type(eb, *out_eiref);
1598 int tree_backref_for_extent(unsigned long *ptr, struct extent_buffer *eb, argument
1610 ret = __get_extent_inline_ref(ptr, eb, key, ei, item_size,
1624 *out_root = btrfs_extent_inline_ref_offset(eb, eiref);
1630 *out_level = btrfs_tree_block_level(eb, info);
1760 struct extent_buffer *eb, void *ctx);
1773 struct extent_buffer *eb; local
1793 eb = btrfs_clone_extent_buffer(path->nodes[0]);
1794 if (!eb) {
1798 extent_buffer_get(eb);
1799 btrfs_tree_read_lock(eb);
1800 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1804 iref = btrfs_item_ptr(eb, slot, struct btrfs_inode_ref);
1806 for (cur = 0; cur < btrfs_item_size(eb, item); cur += len) {
1807 name_len = btrfs_inode_ref_name_len(eb, iref);
1813 (unsigned long)(iref + 1), eb, ctx);
1819 btrfs_tree_read_unlock_blocking(eb);
1820 free_extent_buffer(eb);
1837 struct extent_buffer *eb; local
1855 eb = btrfs_clone_extent_buffer(path->nodes[0]);
1856 if (!eb) {
1860 extent_buffer_get(eb);
1862 btrfs_tree_read_lock(eb);
1863 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK);
1866 item_size = btrfs_item_size_nr(eb, slot);
1867 ptr = btrfs_item_ptr_offset(eb, slot);
1874 parent = btrfs_inode_extref_parent(eb, extref);
1875 name_len = btrfs_inode_extref_name_len(eb, extref);
1877 (unsigned long)&extref->name, eb, ctx);
1881 cur_offset += btrfs_inode_extref_name_len(eb, extref);
1884 btrfs_tree_read_unlock_blocking(eb);
1885 free_extent_buffer(eb);
1920 struct extent_buffer *eb, void *ctx) argument
1934 name_off, eb, inum, fspath_min, bytes_left);