nbytes = btrfs_stack_inode_nbytes(inode) + num_bytes;
btrfs_set_stack_inode_nbytes(inode, nbytes);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
ins_key.objectid = disk_bytenr;
ins_key.offset = num_bytes;
goto fail;
ret = 0;
fail:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
if (ret)
goto fail;
last_byte = bytenr + num_bytes;
- btrfs_release_path(extent_root, &path);
+ btrfs_release_path(&path);
if (trans->blocks_used >= 4096) {
ret = btrfs_commit_transaction(trans, root);
BUG_ON(!trans);
}
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (total_bytes > last_byte) {
ret = create_image_file_range(trans, root, objectid,
&btrfs_inode, last_byte,
btrfs_set_inode_size(leaf, inode_item, strlen(name) * 2 +
btrfs_inode_size(leaf, inode_item));
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
ret = btrfs_commit_transaction(trans, root);
BUG_ON(ret);
fail:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
if (key.objectid == dirid && key.type == BTRFS_DIR_INDEX_KEY)
index = key.offset + 1;
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
trans = btrfs_start_transaction(root, 1);
BUG_ON(!trans);
btrfs_set_inode_size(leaf, inode_item, strlen(buf) * 2 +
btrfs_inode_size(leaf, inode_item));
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
/* add the backref first */
ret = btrfs_add_root_ref(trans, tree_root, root_objectid,
ret = btrfs_del_item(trans, device->dev_root, &path);
if (ret)
goto err;
- btrfs_release_path(device->dev_root, &path);
+ btrfs_release_path(&path);
/* delete chunk item created by make_btrfs */
key.objectid = chunk_objectid;
ret = btrfs_del_item(trans, chunk_root, &path);
if (ret)
goto err;
- btrfs_release_path(chunk_root, &path);
+ btrfs_release_path(&path);
/* for each block group, create device extent and chunk item */
cur_start = 0;
(unsigned long)btrfs_dev_extent_chunk_tree_uuid(extent),
BTRFS_UUID_SIZE);
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(device->dev_root, &path);
+ btrfs_release_path(&path);
/* insert chunk item */
btrfs_set_stack_chunk_length(&chunk, cache->key.offset);
device->bytes_used = total_bytes;
ret = btrfs_update_device(trans, device);
err:
- btrfs_release_path(device->dev_root, &path);
+ btrfs_release_path(&path);
return ret;
}
if (ret)
goto fail;
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
key.objectid = extent_key->objectid;
key.offset = 0;
leaf = path.nodes[0];
ptr = btrfs_item_ptr_offset(leaf, path.slots[0]);
read_extent_buffer(leaf, &inode, ptr, sizeof(inode));
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
BUG_ON(num_bytes & (sectorsize - 1));
nbytes = btrfs_stack_inode_nbytes(&inode) - num_bytes;
ptr = btrfs_item_ptr_offset(leaf, path.slots[0]);
write_extent_buffer(leaf, &inode, ptr, sizeof(inode));
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
fail:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
start_byte = key.objectid;
}
}
- btrfs_release_path(extent_root, &path);
+ btrfs_release_path(&path);
again:
cur_root = (pass % 2 == 0) ? ext2_root : fs_root;
num_extents = 0;
goto fail;
cur_byte += num_bytes;
- btrfs_release_path(extent_root, &path);
+ btrfs_release_path(&path);
if (trans->blocks_used >= 4096) {
ret = btrfs_commit_transaction(trans, cur_root);
BUG_ON(!trans);
}
}
- btrfs_release_path(cur_root, &path);
+ btrfs_release_path(&path);
ret = btrfs_commit_transaction(trans, cur_root);
BUG_ON(ret);
ret = (num_extents > 0) ? -1 : 0;
fail:
- btrfs_release_path(cur_root, &path);
+ btrfs_release_path(&path);
extent_io_tree_cleanup(&reloc_tree);
return ret;
}
break;
btrfs_item_key_to_cpu(path.nodes[0], &key, path.slots[0]);
- btrfs_release_path(chunk_root, &path);
+ btrfs_release_path(&path);
}
- btrfs_release_path(chunk_root, &path);
+ btrfs_release_path(&path);
/* fixup the system chunk array in super block */
btrfs_set_super_sys_array_size(info->super_copy, 0);
ret = btrfs_commit_transaction(trans, root);
BUG_ON(ret);
err:
- btrfs_release_path(chunk_root, &path);
+ btrfs_release_path(&path);
return ret;
}
}
leaf = path.nodes[0];
btrfs_dir_item_key_to_cpu(leaf, dir, &key);
- btrfs_release_path(ext2_root, &path);
+ btrfs_release_path(&path);
objectid = key.objectid;
leaf = path.nodes[0];
inode = btrfs_item_ptr(leaf, path.slots[0], struct btrfs_inode_item);
total_bytes = btrfs_inode_size(leaf, inode);
- btrfs_release_path(ext2_root, &path);
+ btrfs_release_path(&path);
key.objectid = objectid;
key.offset = 0;
ret = btrfs_search_slot(NULL, ext2_root, &key, &path, 0, 0);
if (ret != 0) {
fprintf(stderr, "unable to find first file extent\n");
- btrfs_release_path(ext2_root, &path);
+ btrfs_release_path(&path);
goto fail;
}
offset += btrfs_file_extent_num_bytes(leaf, fi);
path.slots[0]++;
}
- btrfs_release_path(ext2_root, &path);
+ btrfs_release_path(&path);
if (offset < total_bytes) {
fprintf(stderr, "unable to build extent mapping\n");
break;
btrfs_item_key_to_cpu(path.nodes[0], &key, path.slots[0]);
- btrfs_release_path(chunk_root, &path);
+ btrfs_release_path(&path);
}
- btrfs_release_path(chunk_root, &path);
+ btrfs_release_path(&path);
offset = 0;
num_bytes = 0;
btrfs_mark_buffer_dirty(leaf);
}
next:
- btrfs_release_path(NULL, path);
+ btrfs_release_path(path);
if (key.offset > 0)
key.offset--;
path.slots[0]++;
}
no_node:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (tree_root_scan == info->tree_root &&
info->log_root_tree) {
if (ret) {
fprintf(stderr, "Error adding space cache blocks %d\n",
ret);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return ret;
}
path->slots[0]++;
bytenr += num_bytes;
}
- btrfs_release_path(extent_root, path);
+ btrfs_release_path(path);
return ret;
}
read_extent_buffer(leaf, dev_uuid, (unsigned long)btrfs_device_uuid(dev_item), BTRFS_UUID_SIZE);
read_extent_buffer(leaf, fs_uuid, (unsigned long)btrfs_device_fsid(dev_item), BTRFS_UUID_SIZE);
- btrfs_release_path(info->chunk_root, &path);
+ btrfs_release_path(&path);
printk("update disk super on %s devid=%llu\n", other_dev, devid);
btrfs_init_path(&path);
ret = btrfs_search_slot(NULL, root, &key, &path, 0, 0);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (ret > 0)
ret = -ENOENT;
return ret;
ret = btrfs_search_slot(NULL, root->fs_info->tree_root, &key, &path,
0, 0);
BUG_ON(ret < 0);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (!ret)
return 1;
has_parent = 1;
if (key.offset == parent_root_id) {
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return 1;
}
path.slots[0]++;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return has_parent? 0 : -1;
}
path.slots[0]++;
}
- btrfs_release_path(root->fs_info->csum_root, &path);
+ btrfs_release_path(&path);
return found;
}
if (wret != 0)
break;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
merge_root_recs(root, &root_node.root_cache, root_cache);
next:
path.slots[0]++;
}
- btrfs_release_path(tree_root, &path);
+ btrfs_release_path(&path);
if (!cache_tree_empty(&wc.shared))
fprintf(stderr, "warning line %d\n", __LINE__);
path.slots[level + 1]))
found = 1;
- btrfs_release_path(ref_root, &path);
+ btrfs_release_path(&path);
return found ? 0 : 1;
}
* in real life, but no harm in coding it up
* anyway just in case.
*/
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
ret = check_extent_exists(root, new_start,
new_bytes);
if (ret) {
found_key.type != BTRFS_EXTENT_REF_V0_KEY &&
found_key.type != BTRFS_SHARED_BLOCK_REF_KEY &&
found_key.type != BTRFS_SHARED_DATA_REF_KEY) {
- btrfs_release_path(NULL, path);
+ btrfs_release_path(path);
if (found_key.type == 0) {
if (found_key.offset == 0)
break;
ret = btrfs_del_item(trans, root->fs_info->extent_root, path);
if (ret)
break;
- btrfs_release_path(NULL, path);
+ btrfs_release_path(path);
if (found_key.type == BTRFS_EXTENT_ITEM_KEY ||
found_key.type == BTRFS_METADATA_ITEM_KEY) {
}
}
- btrfs_release_path(NULL, path);
+ btrfs_release_path(path);
return ret;
}
rec->max_size, 1, 0);
if (ret)
goto fail;
- btrfs_release_path(NULL, path);
+ btrfs_release_path(path);
}
if (back->is_data) {
if (ret)
goto fail;
fail:
- btrfs_release_path(NULL, path);
+ btrfs_release_path(path);
return ret;
}
path->slots[0]++;
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
/*
* Have to make sure that this root gets updated when we commit the
else
printf("ram bytes may be wrong?\n");
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return 0;
}
ret = btrfs_del_item(trans, root, path);
if (ret)
goto out;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
nr_del++;
}
goto out;
} else {
level++;
- btrfs_release_path(NULL, &path);
+ btrfs_release_path(&path);
goto again;
}
ret = btrfs_del_ptr(trans, info->extent_root, &path, level, slot);
out:
- btrfs_release_path(NULL, &path);
+ btrfs_release_path(&path);
return ret;
}
btrfs_init_path(&path);
ret = btrfs_search_slot(NULL, info->extent_root,
&key, &path, 0, 0);
- btrfs_release_path(NULL, &path);
+ btrfs_release_path(&path);
if (ret <= 0)
goto out;
}
path.slots[0]++;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
while(1) {
ret = run_next_block(root, bits, bits_nr, &last, &pending,
&seen, &reada, &nodes, &extent_cache,
ret = btrfs_del_item(trans, root, path);
if (ret)
goto out;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
key.objectid = BTRFS_TREE_RELOC_OBJECTID;
key.type = BTRFS_ROOT_ITEM_KEY;
goto out;
}
key.offset++;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
found = 0;
ret = btrfs_search_slot(trans, root, &key, path,
if (ret)
goto out;
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
key.objectid = BTRFS_DATA_RELOC_TREE_OBJECTID;
key.type = BTRFS_ROOT_ITEM_KEY;
if (ret < 0) {
fprintf(stderr, "Search device extent failed(%d)\n",
ret);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
} else if (ret > 0) {
if (rc->verbose)
fprintf(stderr,
"No device extent[%llu, %llu]\n",
stripe->devid, stripe->offset);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return -ENOENT;
}
l = path.nodes[0];
dev_extent),
btrfs_dev_extent_length(l, dev_extent),
chunk->offset, chunk->length);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return -ENOENT;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
}
bg_check:
0, 0);
if (ret < 0) {
fprintf(stderr, "Search block group failed(%d)\n", ret);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
} else if (ret > 0) {
if (rc->verbose)
fprintf(stderr, "No block group[%llu, %llu]\n",
key.objectid, key.offset);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return -ENOENT;
}
"Chunk[%llu, %llu]'s type(%llu) is differemt with Block Group's type(%llu)\n",
chunk->offset, chunk->length, chunk->type_flags,
btrfs_disk_block_group_flags(l, bg_ptr));
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return -ENOENT;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return 0;
}
btrfs_item_key_to_cpu(leaf, &key, 0);
if (key.objectid >= end)
goto err;
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
goto again;
}
key.type = BTRFS_EXTENT_ITEM_KEY;
key.offset = 0;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
goto again;
}
err:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
struct btrfs_inode_item);
found_size = btrfs_inode_size(path->nodes[0], inode_item);
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
key->offset = 0;
key->type = BTRFS_EXTENT_DATA_KEY;
void btrfs_free_path(struct btrfs_path *p)
{
- btrfs_release_path(NULL, p);
+ btrfs_release_path(p);
kfree(p);
}
-void btrfs_release_path(struct btrfs_root *root, struct btrfs_path *p)
+void btrfs_release_path(struct btrfs_path *p)
{
int i;
for (i = 0; i < BTRFS_MAX_LEVEL; i++) {
return sret;
b = p->nodes[level];
if (!b) {
- btrfs_release_path(NULL, p);
+ btrfs_release_path(p);
goto again;
}
slot = p->slots[level];
goto split;
item_size = btrfs_item_size_nr(leaf, path->slots[0]);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
path->search_for_split = 1;
int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root
*root, struct btrfs_key *key, struct btrfs_path *p, int
ins_len, int cow);
-void btrfs_release_path(struct btrfs_root *root, struct btrfs_path *p);
+void btrfs_release_path(struct btrfs_path *p);
void add_root_to_dirty_list(struct btrfs_root *root);
struct btrfs_path *btrfs_alloc_path(void);
void btrfs_free_path(struct btrfs_path *p);
ret = 0;
goto out;
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_set_key_type(&key, BTRFS_DIR_INDEX_KEY);
key.offset = index;
foundhash = btrfs_name_hash(found, found_len);
if (myhash != foundhash)
goto fatal_release;
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return 0;
}
fatal_release:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
fatal:
printf("failed to insert %lu ret %d\n", oid, ret);
return -1;
ret = btrfs_del_item(trans, root, path);
if (ret)
goto out_release;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
/* delete the inode */
btrfs_init_path(path);
ret = btrfs_del_item(trans, root, path);
if (ret)
goto out_release;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
if (root->fs_info->last_inode_alloc > file_objectid)
root->fs_info->last_inode_alloc = file_objectid;
}
return 0;
out_release:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
out:
printf("failed to delete %lu %d\n", radix_index, ret);
return -1;
goto out_release;
return ret;
out_release:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
printf("failed to delete %lu %d\n", oid, ret);
return -1;
}
struct btrfs_dir_item);
objectid = btrfs_disk_key_objectid(&di->location);
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (ret) {
printf("unable to find key %lu\n", oid);
return -1;
btrfs_init_path(&path);
ret = btrfs_lookup_dir_item(trans, root, &path, dir_oid, buf,
strlen(buf), 0);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (!ret) {
printf("able to find key that should not exist %lu\n", oid);
return -1;
btrfs_init_path(&path);
ret = btrfs_search_slot(trans, root, &key, &path, -1, 1);
if (ret < 0) {
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
if (ret != 0) {
if (path.slots[0] == 0) {
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
break;
}
path.slots[0] -= 1;
memcpy(&root->root_key, location, sizeof(*location));
ret = 0;
out:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_free_path(path);
if (ret) {
free(root);
break;
}
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
if (owner < BTRFS_FIRST_FREE_OBJECTID)
new_size += sizeof(*bi);
return 0;
#ifdef BTRFS_COMPAT_EXTENT_TREE_V0
key.type = BTRFS_EXTENT_REF_V0_KEY;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
if (ret < 0) {
err = ret;
if (match_extent_data_ref(leaf, ref, root_objectid,
owner, offset)) {
if (recow) {
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
goto again;
}
err = 0;
if (match_extent_data_ref(leaf, ref, root_objectid,
owner, offset))
break;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
key.offset++;
ret = btrfs_insert_empty_item(trans, root, path, &key,
btrfs_mark_buffer_dirty(leaf);
ret = 0;
fail:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return ret;
}
ret = -ENOENT;
#ifdef BTRFS_COMPAT_EXTENT_TREE_V0
if (ret == -ENOENT && parent) {
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
key.type = BTRFS_EXTENT_REF_V0_KEY;
ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
if (ret > 0)
ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return ret;
}
if (ret) {
key.type = BTRFS_EXTENT_ITEM_KEY;
key.offset = num_bytes;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
goto again;
}
}
if (ret != -ENOENT)
return ret;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
*ref_ret = NULL;
if (owner < BTRFS_FIRST_FREE_OBJECTID) {
btrfs_set_extent_refs(leaf, item, refs + 1);
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(root->fs_info->extent_root, path);
+ btrfs_release_path(path);
path->reada = 1;
path->leave_spinning = 1;
}
if (ret) {
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
key.type = BTRFS_EXTENT_ITEM_KEY;
key.offset = root->leafsize;
metadata = 0;
ret = 0;
}
if (ret) {
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
key.offset = root->leafsize;
key.type = BTRFS_EXTENT_ITEM_KEY;
goto again;
bi = btrfs_item_ptr_offset(leaf, path->slots[0]);
write_extent_buffer(leaf, &cache->item, bi, sizeof(cache->item));
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(extent_root, path);
+ btrfs_release_path(path);
fail:
finish_current_insert(trans, extent_root);
pending_ret = del_pending_extents(trans, extent_root);
NULL, refs_to_drop,
is_data);
BUG_ON(ret);
- btrfs_release_path(extent_root, path);
+ btrfs_release_path(path);
path->leave_spinning = 1;
key.objectid = bytenr;
if (ret > 0 && skinny_metadata) {
skinny_metadata = 0;
- btrfs_release_path(extent_root, path);
+ btrfs_release_path(path);
key.type = BTRFS_EXTENT_ITEM_KEY;
key.offset = num_bytes;
ret = btrfs_search_slot(trans, extent_root,
owner_objectid, 0);
BUG_ON(ret < 0);
- btrfs_release_path(extent_root, path);
+ btrfs_release_path(path);
path->leave_spinning = 1;
key.objectid = bytenr;
ret = btrfs_del_items(trans, extent_root, path, path->slots[0],
num_to_del);
BUG_ON(ret);
- btrfs_release_path(extent_root, path);
+ btrfs_release_path(path);
if (is_data) {
ret = btrfs_del_csums(trans, root, bytenr, num_bytes);
cache->cached = 0;
cache->pinned = 0;
key.objectid = found_key.objectid + found_key.offset;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
cache->flags = btrfs_block_group_flags(&cache->item);
bit = 0;
if (cache->flags & BTRFS_BLOCK_GROUP_DATA) {
path->slots[0]++;
}
*total = bytes_used;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return 0;
}
path.slots[0]++;
}
btrfs_set_super_bytes_used(root->fs_info->super_copy, bytes_used);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return 0;
}
* at this point, we know the tree has an item, but it isn't big
* enough yet to put our csum in. Grow it
*/
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
ret = btrfs_search_slot(trans, root, &file_key, path,
csum_size, 1);
if (ret < 0)
}
insert:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
csum_offset = 0;
if (found_next) {
u64 tmp = min(alloc_end, next_offset);
csum_size);
btrfs_mark_buffer_dirty(path->nodes[0]);
fail:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_free_path(path);
return ret;
}
&key, bytenr, len);
BUG_ON(ret);
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
}
out:
btrfs_free_path(path);
if (ret) {
printf("Couldn't find file extent item for free space inode"
" %Lu\n", ino);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return -EINVAL;
}
path->slots[0]++;
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return ret;
}
if (ret < 0) {
return 0;
} else if (ret > 0) {
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return 0;
}
generation = btrfs_free_space_generation(leaf, header);
btrfs_free_space_key(leaf, header, &disk_key);
btrfs_disk_key_to_cpu(&inode_location, &disk_key);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
ret = btrfs_search_slot(NULL, root, &inode_location, path, 0, 0);
if (ret) {
(unsigned long long)btrfs_inode_generation(leaf,
inode_item),
(unsigned long long)generation);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return 0;
}
inode_size = btrfs_inode_size(leaf, inode_item);
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
if (inode_size == 0)
return 0;
// FIXME -ENOSPC
found:
root->last_inode_alloc = *objectid;
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_free_path(path);
BUG_ON(*objectid < search_start);
return 0;
error:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_free_path(path);
return ret;
}
btrfs_set_file_extent_other_encoding(leaf, fi, 0);
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
ins_key.objectid = disk_bytenr;
ins_key.offset = num_bytes;
root->root_key.objectid,
objectid, 0);
fail:
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
btrfs_set_inode_size(leaf, inode_item, root_dir_inode_size);
btrfs_mark_buffer_dirty(leaf);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
do {
parent_dir_entry = list_entry(dir_head->list.next,
printf("unable to find %d\n", num);
exit(1);
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
}
close_ctree(root);
BUG();
tree_size--;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
}
btrfs_commit_transaction(trans, root);
close_ctree(root);
printf("unable to find %d\n", num);
exit(1);
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
}
printf("starting big long delete run\n");
trans = btrfs_start_transaction(root, 1);
}
tree_size--;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
}
/*
printf("previous tree:\n");
if (ret)
goto error;
ret = btrfs_del_item(trans, root, &path);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (ret != 0)
goto error;
ptr = radix_tree_delete(radix, key.objectid);
if (ret < 0)
return 0;
ret = btrfs_search_slot(trans, root, &key, &path, 0, 1);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (ret)
goto error;
return 0;
if (ret < 0)
return ret;
ret = btrfs_search_slot(trans, root, &key, &path, 0, 0);
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
if (ret <= 0)
goto error;
return 0;
btrfs_init_path(&path);
ret = btrfs_search_slot(trans, root, &key, &path, -1, 1);
if (ret < 0) {
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
if (ret != 0) {
if (path.slots[0] == 0) {
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
break;
}
path.slots[0] -= 1;
found);
return -1;
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
ptr = radix_tree_delete(radix, found);
if (!ptr)
goto error;
btrfs_init_path(&path);
ret = btrfs_search_slot(NULL, root, &key, &path, 0, 0);
if (ret < 0) {
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
return ret;
}
slot = path.slots[0];
if (ret != 0) {
if (slot == 0) {
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
break;
}
slot -= 1;
radix_tree_preload_end();
}
- btrfs_release_path(root, &path);
+ btrfs_release_path(&path);
key.objectid = found - 1;
if (key.objectid > found)
break;
memcpy(key, &found_key, sizeof(found_key));
ret = 0;
out:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_free_path(path);
return ret;
}
* for the added fields.
*/
if (old_len < sizeof(*item)) {
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
ret = btrfs_search_slot(trans, root, key, path,
-1, 1);
if (ret < 0) {
if (ret < 0) {
goto out;
}
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
ret = btrfs_insert_empty_item(trans, root, path,
key, sizeof(*item));
if (ret < 0) {
write_extent_buffer(l, item, ptr, sizeof(*item));
btrfs_mark_buffer_dirty(path->nodes[0]);
out:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_free_path(path);
return ret;
}
BUG_ON(refs != 0);
ret = btrfs_del_item(trans, root, path);
out:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
btrfs_free_path(path);
return ret;
}
* On failure, returns -errno (not mounted yields -EINVAL)
* Is noisy on failures, expects to be given a mounted device.
*/
-int get_btrfs_mount(const char *dev, char *mp, size_t mp_size) {
+static int get_btrfs_mount(const char *dev, char *mp, size_t mp_size) {
int ret;
int fd = -1;
char *__strncpy__null(char *dest, const char *src, size_t n);
int is_block_device(const char *file);
-int get_btrfs_mount(const char *path, char *mp, size_t mp_size);
int open_path_or_dev_mnt(const char *path, DIR **dirstream);
int is_swap_device(const char *file);
u64 btrfs_device_size(int fd, struct stat *st);
/* we have to make sure we didn't find an extent that has already
* been allocated by the map tree or the original allocation
*/
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
BUG_ON(*start < search_start);
if (*start + num_bytes > search_end) {
return 0;
error:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return ret;
}
}
ret = 0;
error:
- btrfs_release_path(root, path);
+ btrfs_release_path(path);
return ret;
}