• Home
  • Raw
  • Download

Lines Matching +full:1 +full:eb

28 			      const struct extent_buffer *eb,  in check_extent_in_eb()  argument
38 !btrfs_file_extent_compression(eb, fi) && in check_extent_in_eb()
39 !btrfs_file_extent_encryption(eb, fi) && in check_extent_in_eb()
40 !btrfs_file_extent_other_encoding(eb, fi)) { in check_extent_in_eb()
44 data_offset = btrfs_file_extent_offset(eb, fi); in check_extent_in_eb()
45 data_len = btrfs_file_extent_num_bytes(eb, fi); in check_extent_in_eb()
49 return 1; in check_extent_in_eb()
75 static int find_extent_in_eb(const struct extent_buffer *eb, in find_extent_in_eb() argument
93 nritems = btrfs_header_nritems(eb); in find_extent_in_eb()
95 btrfs_item_key_to_cpu(eb, &key, slot); in find_extent_in_eb()
98 fi = btrfs_item_ptr(eb, slot, struct btrfs_file_extent_item); in find_extent_in_eb()
99 extent_type = btrfs_file_extent_type(eb, fi); in find_extent_in_eb()
103 disk_byte = btrfs_file_extent_disk_bytenr(eb, fi); in find_extent_in_eb()
107 ret = check_extent_in_eb(&key, eb, fi, extent_item_pos, eie, ignore_offset); in find_extent_in_eb()
134 * - decremented when a ref->count transitions to <1
145 return (sc && sc->share_count > 1) ? BACKREF_FOUND_SHARED : 0; in extent_is_shared()
174 * A -1 return indicates ref1 is a 'lower' block than ref2, while 1
181 return -1; in prelim_ref_compare()
183 return 1; in prelim_ref_compare()
185 return -1; in prelim_ref_compare()
187 return 1; in prelim_ref_compare()
189 return -1; in prelim_ref_compare()
191 return 1; in prelim_ref_compare()
193 return -1; in prelim_ref_compare()
195 return 1; in prelim_ref_compare()
197 return -1; in prelim_ref_compare()
199 return 1; in prelim_ref_compare()
201 return -1; in prelim_ref_compare()
203 return 1; in prelim_ref_compare()
211 if ((!sc) || (oldcount == 0 && newcount < 1)) in update_share_count()
214 if (oldcount > 0 && newcount < 1) in update_share_count()
216 else if (oldcount < 1 && newcount > 0) in update_share_count()
317 * - column 1: we've the parent -> done
330 * - column 1, 3: we've the parent -> done
413 return 1; in is_shared_data_backref()
426 struct extent_buffer *eb; in add_all_parents() local
438 eb = path->nodes[level]; in add_all_parents()
439 ret = ulist_add(parents, eb->start, 0, GFP_NOFS); in add_all_parents()
446 * 1. We normally enter this function with the path already pointing to in add_all_parents()
455 eb = path->nodes[0]; in add_all_parents()
456 if (path->slots[0] >= btrfs_header_nritems(eb) || in add_all_parents()
457 is_shared_data_backref(preftrees, eb->start) || in add_all_parents()
458 ref->root_id != btrfs_header_owner(eb)) { in add_all_parents()
466 eb = path->nodes[0]; in add_all_parents()
469 btrfs_item_key_to_cpu(eb, &key, slot); in add_all_parents()
481 (is_shared_data_backref(preftrees, eb->start) || in add_all_parents()
482 ref->root_id != btrfs_header_owner(eb))) { in add_all_parents()
489 fi = btrfs_item_ptr(eb, slot, struct btrfs_file_extent_item); in add_all_parents()
490 type = btrfs_file_extent_type(eb, fi); in add_all_parents()
493 disk_byte = btrfs_file_extent_disk_bytenr(eb, fi); in add_all_parents()
494 data_offset = btrfs_file_extent_offset(eb, fi); in add_all_parents()
504 ret = check_extent_in_eb(&key, eb, fi, in add_all_parents()
512 ret = ulist_add_merge_ptr(parents, eb->start, in add_all_parents()
548 struct extent_buffer *eb; in resolve_indirect_ref() local
589 if (root_level + 1 == level) in resolve_indirect_ref()
628 eb = path->nodes[level]; in resolve_indirect_ref()
629 while (!eb) { in resolve_indirect_ref()
631 ret = 1; in resolve_indirect_ref()
635 eb = path->nodes[level]; in resolve_indirect_ref()
797 struct extent_buffer *eb; in add_missing_keys() local
809 eb = read_tree_block(fs_info, ref->wanted_disk_byte, 0, in add_missing_keys()
810 ref->level - 1, NULL); in add_missing_keys()
811 if (IS_ERR(eb)) { in add_missing_keys()
813 return PTR_ERR(eb); in add_missing_keys()
814 } else if (!extent_buffer_uptodate(eb)) { in add_missing_keys()
816 free_extent_buffer(eb); in add_missing_keys()
820 btrfs_tree_read_lock(eb); in add_missing_keys()
821 if (btrfs_header_level(eb) == 0) in add_missing_keys()
822 btrfs_item_key_to_cpu(eb, &ref->key_for_search, 0); in add_missing_keys()
824 btrfs_node_key_to_cpu(eb, &ref->key_for_search, 0); in add_missing_keys()
826 btrfs_tree_read_unlock(eb); in add_missing_keys()
827 free_extent_buffer(eb); in add_missing_keys()
858 WARN_ON(1); in add_delayed_refs()
864 count = node->ref_mod * -1; in add_delayed_refs()
882 key_ptr, ref->level + 1, in add_delayed_refs()
893 ret = add_direct_ref(fs_info, preftrees, ref->level + 1, in add_delayed_refs()
942 WARN_ON(1); in add_delayed_refs()
992 ptr = (unsigned long)(ei + 1); in add_inline_refs()
1025 *info_level + 1, offset, in add_inline_refs()
1026 bytenr, 1, NULL, GFP_NOFS); in add_inline_refs()
1032 sdref = (struct btrfs_shared_data_ref *)(iref + 1); in add_inline_refs()
1041 NULL, *info_level + 1, in add_inline_refs()
1042 bytenr, 1, NULL, GFP_NOFS); in add_inline_refs()
1071 WARN_ON(1); in add_inline_refs()
1097 while (1) { in add_keyed_refs()
1121 info_level + 1, key.offset, in add_keyed_refs()
1122 bytenr, 1, NULL, GFP_NOFS); in add_keyed_refs()
1140 NULL, info_level + 1, bytenr, in add_keyed_refs()
1141 1, NULL, GFP_NOFS); in add_keyed_refs()
1170 WARN_ON(1); in add_keyed_refs()
1224 key.offset = (u64)-1;
1234 path->search_commit_root = 1;
1235 path->skip_locking = 1;
1239 path->skip_locking = 1;
1372 struct extent_buffer *eb; local
1374 eb = read_tree_block(fs_info, ref->parent, 0,
1376 if (IS_ERR(eb)) {
1377 ret = PTR_ERR(eb);
1379 } else if (!extent_buffer_uptodate(eb)) {
1380 free_extent_buffer(eb);
1386 btrfs_tree_read_lock(eb);
1387 btrfs_set_lock_blocking_read(eb);
1389 ret = find_extent_in_eb(eb, bytenr,
1392 btrfs_tree_read_unlock_blocking(eb);
1393 free_extent_buffer(eb);
1514 while (1) {
1562 * Return: 0 if extent is not shared, 1 if it is shared, < 0 on error.
1596 while (1) {
1600 /* this is the only condition under which we return 1 */
1601 ret = 1;
1648 while (1) {
1663 if (ret >= 1)
1718 s64 bytes_left = ((s64)size) - 1;
1719 struct extent_buffer *eb = eb_in; local
1727 path->leave_spinning = 1;
1728 while (1) {
1731 read_extent_buffer(eb, dest + bytes_left,
1733 if (eb != eb_in) {
1735 btrfs_tree_read_unlock_blocking(eb);
1736 free_extent_buffer(eb);
1752 eb = path->nodes[0];
1753 /* make sure we can use eb after releasing the path */
1754 if (eb != eb_in) {
1756 btrfs_set_lock_blocking_read(eb);
1761 iref = btrfs_item_ptr(eb, slot, struct btrfs_inode_ref);
1763 name_len = btrfs_inode_ref_name_len(eb, iref);
1764 name_off = (unsigned long)(iref + 1);
1794 const struct extent_buffer *eb; local
1803 key.offset = (u64)-1;
1828 eb = path->nodes[0];
1829 item_size = btrfs_item_size_nr(eb, path->slots[0]);
1832 ei = btrfs_item_ptr(eb, path->slots[0], struct btrfs_extent_item);
1833 flags = btrfs_extent_flags(eb, ei);
1859 * next ref. after the last ref was processed, 1 is returned.
1863 const struct extent_buffer *eb, argument
1876 flags = btrfs_extent_flags(eb, ei);
1881 (struct btrfs_extent_inline_ref *)(ei + 1);
1884 info = (struct btrfs_tree_block_info *)(ei + 1);
1886 (struct btrfs_extent_inline_ref *)(info + 1);
1889 *out_eiref = (struct btrfs_extent_inline_ref *)(ei + 1);
1898 *out_type = btrfs_get_extent_inline_ref_type(eb, *out_eiref,
1906 return 1; /* last */
1915 * returns 0 if data was provided, 1 if there was no more data to provide or
1918 int tree_backref_for_extent(unsigned long *ptr, struct extent_buffer *eb, argument
1926 if (*ptr == (unsigned long)-1)
1927 return 1;
1929 while (1) {
1930 ret = get_extent_inline_ref(ptr, eb, key, ei, item_size,
1939 if (ret == 1)
1940 return 1;
1944 *out_root = btrfs_extent_inline_ref_offset(eb, eiref);
1949 info = (struct btrfs_tree_block_info *)(ei + 1);
1950 *out_level = btrfs_tree_block_level(eb, info);
1956 if (ret == 1)
1957 *ptr = (unsigned long)-1;
2075 inodes->val[inodes->elem_cnt + 1] = offset;
2113 struct extent_buffer *eb, void *ctx);
2126 struct extent_buffer *eb; local
2133 parent ? parent + 1 : 0, BTRFS_INODE_REF_KEY,
2146 eb = btrfs_clone_extent_buffer(path->nodes[0]);
2147 if (!eb) {
2154 iref = btrfs_item_ptr(eb, slot, struct btrfs_inode_ref);
2156 for (cur = 0; cur < btrfs_item_size(eb, item); cur += len) {
2157 name_len = btrfs_inode_ref_name_len(eb, iref);
2164 (unsigned long)(iref + 1), eb, ctx);
2170 free_extent_buffer(eb);
2187 struct extent_buffer *eb; local
2193 while (1) {
2205 eb = btrfs_clone_extent_buffer(path->nodes[0]);
2206 if (!eb) {
2212 item_size = btrfs_item_size_nr(eb, slot);
2213 ptr = btrfs_item_ptr_offset(eb, slot);
2220 parent = btrfs_inode_extref_parent(eb, extref);
2221 name_len = btrfs_inode_extref_name_len(eb, extref);
2223 (unsigned long)&extref->name, eb, ctx);
2227 cur_offset += btrfs_inode_extref_name_len(eb, extref);
2230 free_extent_buffer(eb);
2265 struct extent_buffer *eb, void *ctx) argument
2277 fspath_min = (char *)ipath->fspath->val + (i + 1) * s_ptr;
2279 name_off, eb, inum, fspath_min, bytes_left);
2389 ret->path->search_commit_root = 1;
2390 ret->path->skip_locking = 1;
2406 key.offset = (u64)-1;
2495 struct extent_buffer *eb = btrfs_backref_get_eb(iter); local
2514 type = btrfs_extent_inline_ref_type(eb, iref);
2534 return 1;
2623 upper->lowest = 1;
2689 cur->is_reloc_root = 1;
2714 cur->level + 1);
2757 struct extent_buffer *eb; local
2768 cur->cowonly = 1;
2792 level = cur->level + 1;
2795 path->search_commit_root = 1;
2796 path->skip_locking = 1;
2807 eb = path->nodes[level];
2808 if (btrfs_node_blockptr(eb, path->slots[level]) != cur->bytenr) {
2811 cur->bytenr, level - 1, root->root_key.objectid,
2842 eb = path->nodes[level];
2843 rb_node = rb_simple_search(&cache->rb_root, eb->start);
2845 upper = btrfs_backref_alloc_node(cache, eb->start,
2846 lower->level + 1);
2853 upper->owner = btrfs_header_owner(eb);
2855 upper->cowonly = 1;
2861 if (btrfs_block_can_be_shared(root, eb))
2864 upper->checked = 1;
2886 upper->owner = btrfs_header_owner(eb);
2963 struct extent_buffer *eb; local
2968 eb = btrfs_backref_get_eb(iter);
2977 type = btrfs_get_extent_inline_ref_type(eb, iref,
2984 key.offset = btrfs_extent_inline_ref_offset(eb, iref);
3029 cur->checked = 1;