Lines Matching refs:path

103 	struct backref_node *path[BTRFS_MAX_LEVEL];  member
1581 struct btrfs_path *path; local
1586 path = btrfs_alloc_path();
1587 if (!path)
1591 ret = btrfs_lookup_file_extent(NULL, root, path, btrfs_ino(reloc_inode),
1600 leaf = path->nodes[0];
1601 fi = btrfs_item_ptr(leaf, path->slots[0],
1617 btrfs_free_path(path);
1742 struct btrfs_path *path, int level) argument
1747 btrfs_node_key(path->nodes[level], &key2, path->slots[level]);
1763 struct btrfs_path *path, struct btrfs_key *next_key, argument
1785 slot = path->slots[lowest_level];
1786 btrfs_node_key_to_cpu(path->nodes[lowest_level], &key, slot);
1827 eb = path->nodes[level];
1829 path->slots[level]);
1831 path->slots[level]);
1843 memcmp_node_keys(parent, slot, path, level)) {
1879 btrfs_node_key_to_cpu(path->nodes[level], &key,
1880 path->slots[level]);
1881 btrfs_release_path(path);
1883 path->lowest_level = level;
1884 ret = btrfs_search_slot(trans, src, &key, path, 0, 1);
1885 path->lowest_level = 0;
1895 btrfs_set_node_blockptr(path->nodes[level],
1896 path->slots[level], old_bytenr);
1897 btrfs_set_node_ptr_generation(path->nodes[level],
1898 path->slots[level], old_ptr_gen);
1899 btrfs_mark_buffer_dirty(path->nodes[level]);
1902 path->nodes[level]->start,
1911 path->nodes[level]->start,
1920 btrfs_unlock_up_safe(path, 0);
1934 int walk_up_reloc_tree(struct btrfs_root *root, struct btrfs_path *path, argument
1945 free_extent_buffer(path->nodes[i]);
1946 path->nodes[i] = NULL;
1949 for (i = *level; i < BTRFS_MAX_LEVEL && path->nodes[i]; i++) {
1950 eb = path->nodes[i];
1952 while (path->slots[i] + 1 < nritems) {
1953 path->slots[i]++;
1954 if (btrfs_node_ptr_generation(eb, path->slots[i]) <=
1961 free_extent_buffer(path->nodes[i]);
1962 path->nodes[i] = NULL;
1971 int walk_down_reloc_tree(struct btrfs_root *root, struct btrfs_path *path, argument
1984 eb = path->nodes[i];
1986 while (path->slots[i] < nritems) {
1987 ptr_gen = btrfs_node_ptr_generation(eb, path->slots[i]);
1990 path->slots[i]++;
1992 if (path->slots[i] >= nritems) {
2003 bytenr = btrfs_node_blockptr(eb, path->slots[i]);
2012 path->nodes[i - 1] = eb;
2013 path->slots[i - 1] = 0;
2090 static int find_next_key(struct btrfs_path *path, int level, argument
2095 if (!path->nodes[level])
2097 if (path->slots[level] + 1 <
2098 btrfs_header_nritems(path->nodes[level])) {
2099 btrfs_node_key_to_cpu(path->nodes[level], key,
2100 path->slots[level] + 1);
2121 struct btrfs_path *path; local
2130 path = btrfs_alloc_path();
2131 if (!path)
2133 path->reada = 1;
2141 path->nodes[level] = reloc_root->node;
2142 path->slots[level] = 0;
2148 path->lowest_level = level;
2149 ret = btrfs_search_slot(NULL, reloc_root, &key, path, 0, 0);
2150 path->lowest_level = 0;
2152 btrfs_free_path(path);
2156 btrfs_node_key_to_cpu(path->nodes[level], &next_key,
2157 path->slots[level]);
2160 btrfs_unlock_up_safe(path, 0);
2184 ret = walk_down_reloc_tree(reloc_root, path, &level);
2192 if (!find_next_key(path, level, &key) &&
2196 ret = replace_path(trans, root, reloc_root, path,
2206 btrfs_node_key_to_cpu(path->nodes[level], &key,
2207 path->slots[level]);
2211 ret = walk_up_reloc_tree(reloc_root, path, &level);
2220 btrfs_node_key(path->nodes[level], &root_item->drop_progress,
2221 path->slots[level]);
2244 btrfs_free_path(path);
2509 rc->backref_cache.path[next->level] = next;
2640 struct btrfs_path *path, int lowest) argument
2656 path->lowest_level = node->level + 1;
2657 rc->backref_cache.path[node->level] = node;
2678 ret = btrfs_search_slot(trans, root, key, path, 0, 1);
2686 upper->eb = path->nodes[upper->level];
2687 path->nodes[upper->level] = NULL;
2689 BUG_ON(upper->eb != path->nodes[upper->level]);
2693 path->locks[upper->level] = 0;
2695 slot = path->slots[upper->level];
2696 btrfs_release_path(path);
2767 path->lowest_level = 0;
2775 struct btrfs_path *path) argument
2780 return do_relocation(trans, rc, node, &key, path, 0);
2785 struct btrfs_path *path, int err) argument
2801 ret = link_to_upper(trans, rc, node, path);
2903 struct btrfs_path *path) argument
2934 path->lowest_level = node->level;
2935 ret = btrfs_search_slot(trans, root, key, path, 0, 1);
2936 btrfs_release_path(path);
2943 ret = do_relocation(trans, rc, node, key, path, 1);
2959 struct btrfs_path *path; local
2965 path = btrfs_alloc_path();
2966 if (!path) {
3002 path);
3011 err = finish_pending_nodes(trans, rc, path, err);
3014 btrfs_free_path(path);
3237 struct btrfs_path *path, argument
3247 leaf = path->nodes[0];
3248 slot = path->slots[0];
3251 ret = btrfs_next_leaf(rc->extent_root, path);
3255 leaf = path->nodes[0];
3256 slot = path->slots[0];
3283 struct btrfs_path *path, argument
3295 eb = path->nodes[0];
3296 item_size = btrfs_item_size_nr(eb, path->slots[0]);
3300 ei = btrfs_item_ptr(eb, path->slots[0],
3315 ret = get_ref_objectid_v0(rc, path, extent_key,
3328 btrfs_release_path(path);
3356 struct btrfs_path *path; local
3368 path = btrfs_alloc_path();
3369 if (!path)
3381 path->search_commit_root = 1;
3382 path->skip_locking = 1;
3383 ret = btrfs_search_slot(NULL, rc->extent_root, &key, path, 0, 0);
3388 if (path->slots[0]) {
3389 path->slots[0]--;
3390 btrfs_item_key_to_cpu(path->nodes[0], &key,
3391 path->slots[0]);
3401 btrfs_release_path(path);
3407 ret = add_tree_block(rc, &key, path, blocks);
3409 btrfs_free_path(path);
3493 struct btrfs_path *path; local
3527 path = btrfs_alloc_path();
3528 if (!path)
3530 path->reada = 1;
3545 path->search_commit_root = 1;
3546 path->skip_locking = 1;
3547 ret = btrfs_search_slot(NULL, root, &key, path, 0, 0);
3553 leaf = path->nodes[0];
3568 path->slots[0] = nritems;
3572 while (path->slots[0] >= nritems) {
3573 ret = btrfs_next_leaf(root, path);
3581 leaf = path->nodes[0];
3594 path->slots[0] = nritems;
3598 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
3603 fi = btrfs_item_ptr(leaf, path->slots[0],
3642 path->slots[0] = nritems;
3644 path->slots[0]++;
3648 btrfs_free_path(path);
3658 struct btrfs_path *path, argument
3671 eb = path->nodes[0];
3672 ptr = btrfs_item_ptr_offset(eb, path->slots[0]);
3673 end = ptr + btrfs_item_size_nr(eb, path->slots[0]);
3705 eb = path->nodes[0];
3706 if (path->slots[0] >= btrfs_header_nritems(eb)) {
3707 ret = btrfs_next_leaf(rc->extent_root, path);
3714 eb = path->nodes[0];
3717 btrfs_item_key_to_cpu(eb, &key, path->slots[0]);
3731 dref = btrfs_item_ptr(eb, path->slots[0],
3742 path->slots[0]++;
3745 btrfs_release_path(path);
3755 int find_next_extent(struct reloc_control *rc, struct btrfs_path *path, argument
3775 path->search_commit_root = 1;
3776 path->skip_locking = 1;
3777 ret = btrfs_search_slot(NULL, rc->extent_root, &key, path,
3782 leaf = path->nodes[0];
3783 if (path->slots[0] >= btrfs_header_nritems(leaf)) {
3784 ret = btrfs_next_leaf(rc->extent_root, path);
3787 leaf = path->nodes[0];
3790 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
3798 path->slots[0]++;
3804 path->slots[0]++;
3811 path->slots[0]++;
3820 btrfs_release_path(path);
3832 btrfs_release_path(path);
3909 struct btrfs_path *path; local
3917 path = btrfs_alloc_path();
3918 if (!path)
3920 path->reada = 1;
3950 ret = find_next_extent(rc, path, &key);
3958 ei = btrfs_item_ptr(path->nodes[0], path->slots[0],
3960 item_size = btrfs_item_size_nr(path->nodes[0], path->slots[0]);
3962 flags = btrfs_extent_flags(path->nodes[0], ei);
3973 ret = get_ref_objectid_v0(rc, path, &key, &ref_owner,
3985 btrfs_release_path(path);
3987 path->search_commit_root = 1;
3988 path->skip_locking = 1;
3990 &key, path, 0, 0);
4003 ret = add_tree_block(rc, &key, path, &blocks);
4006 ret = add_data_references(rc, &key, path, &blocks);
4008 btrfs_release_path(path);
4059 btrfs_release_path(path);
4097 btrfs_free_path(path);
4104 struct btrfs_path *path; local
4109 path = btrfs_alloc_path();
4110 if (!path)
4113 ret = btrfs_insert_empty_inode(trans, root, path, objectid);
4117 leaf = path->nodes[0];
4118 item = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_inode_item);
4127 btrfs_free_path(path);
4204 struct btrfs_path *path; local
4225 path = btrfs_alloc_path();
4226 if (!path) {
4232 path);
4233 btrfs_free_path(path);
4336 struct btrfs_path *path; local
4343 path = btrfs_alloc_path();
4344 if (!path)
4346 path->reada = -1;
4354 path, 0, 0);
4360 if (path->slots[0] == 0)
4362 path->slots[0]--;
4364 leaf = path->nodes[0];
4365 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]);
4366 btrfs_release_path(path);
4402 btrfs_release_path(path);
4468 btrfs_free_path(path);
4564 node = rc->backref_cache.path[level];