@@ -9067,8 +9067,7 @@ static struct extent_buffer *btrfs_fsck_clear_root(
if (!path)
return ERR_PTR(-ENOMEM);
- c = btrfs_alloc_tree_block(trans, gfs_info->tree_root,
- gfs_info->nodesize, key->objectid,
+ c = btrfs_alloc_tree_block(trans, gfs_info->tree_root, 0, key->objectid,
&disk_key, 0, 0, 0, BTRFS_NESTING_NORMAL);
if (IS_ERR(c)) {
btrfs_free_path(path);
@@ -1143,8 +1143,7 @@ static int __rebuild_chunk_root(struct btrfs_trans_handle *trans,
btrfs_set_disk_key_type(&disk_key, BTRFS_DEV_ITEM_KEY);
btrfs_set_disk_key_offset(&disk_key, min_devid);
- cow = btrfs_alloc_tree_block(trans, root, root->fs_info->nodesize,
- BTRFS_CHUNK_TREE_OBJECTID,
+ cow = btrfs_alloc_tree_block(trans, root, 0, BTRFS_CHUNK_TREE_OBJECTID,
&disk_key, 0, 0, 0, BTRFS_NESTING_NORMAL);
btrfs_set_header_bytenr(cow, cow->start);
btrfs_set_header_generation(cow, trans->transid);
@@ -158,9 +158,8 @@ int btrfs_copy_root(struct btrfs_trans_handle *trans,
btrfs_item_key(buf, &disk_key, 0);
else
btrfs_node_key(buf, &disk_key, 0);
- cow = btrfs_alloc_tree_block(trans, new_root, buf->len,
- new_root_objectid, &disk_key,
- level, buf->start, 0,
+ cow = btrfs_alloc_tree_block(trans, new_root, 0, new_root_objectid,
+ &disk_key, level, buf->start, 0,
BTRFS_NESTING_NORMAL);
if (IS_ERR(cow)) {
kfree(new_root);
@@ -329,9 +328,8 @@ static int __btrfs_cow_block(struct btrfs_trans_handle *trans,
else
btrfs_node_key(buf, &disk_key, 0);
- cow = btrfs_alloc_tree_block(trans, root, buf->len,
- root->root_key.objectid, &disk_key,
- level, search_start, empty_size,
+ cow = btrfs_alloc_tree_block(trans, root, 0, root->root_key.objectid,
+ &disk_key, level, search_start, empty_size,
BTRFS_NESTING_NORMAL);
if (IS_ERR(cow))
return PTR_ERR(cow);
@@ -1395,9 +1393,8 @@ static int noinline insert_new_root(struct btrfs_trans_handle *trans,
else
btrfs_node_key(lower, &lower_key, 0);
- c = btrfs_alloc_tree_block(trans, root, root->fs_info->nodesize,
- root->root_key.objectid, &lower_key,
- level, root->node->start, 0,
+ c = btrfs_alloc_tree_block(trans, root, 0, root->root_key.objectid,
+ &lower_key, level, root->node->start, 0,
BTRFS_NESTING_NORMAL);
if (IS_ERR(c))
@@ -1522,10 +1519,9 @@ static int split_node(struct btrfs_trans_handle *trans, struct btrfs_root
mid = (c_nritems + 1) / 2;
btrfs_node_key(c, &disk_key, mid);
- split = btrfs_alloc_tree_block(trans, root, root->fs_info->nodesize,
- root->root_key.objectid,
- &disk_key, level, c->start, 0,
- BTRFS_NESTING_NORMAL);
+ split = btrfs_alloc_tree_block(trans, root, 0, root->root_key.objectid,
+ &disk_key, level, c->start, 0,
+ BTRFS_NESTING_NORMAL);
if (IS_ERR(split))
return PTR_ERR(split);
@@ -2088,10 +2084,9 @@ again:
else
btrfs_item_key(l, &disk_key, mid);
- right = btrfs_alloc_tree_block(trans, root, root->fs_info->nodesize,
- root->root_key.objectid,
- &disk_key, 0, l->start, 0,
- BTRFS_NESTING_NORMAL);
+ right = btrfs_alloc_tree_block(trans, root, 0, root->root_key.objectid,
+ &disk_key, 0, l->start, 0,
+ BTRFS_NESTING_NORMAL);
if (IS_ERR(right)) {
BUG_ON(1);
return PTR_ERR(right);
@@ -885,7 +885,7 @@ struct btrfs_block_group *btrfs_lookup_first_block_group(struct
u64 bytenr);
struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- u32 blocksize, u64 root_objectid,
+ u64 parent, u64 root_objectid,
struct btrfs_disk_key *key, int level,
u64 hint, u64 empty_size,
enum btrfs_lock_nesting nest);
@@ -2361,9 +2361,8 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans,
btrfs_setup_root(root, fs_info, key->objectid);
memcpy(&root->root_key, key, sizeof(struct btrfs_key));
- leaf = btrfs_alloc_tree_block(trans, root, fs_info->nodesize,
- root->root_key.objectid, NULL, 0, 0, 0,
- BTRFS_NESTING_NORMAL);
+ leaf = btrfs_alloc_tree_block(trans, root, 0, root->root_key.objectid,
+ NULL, 0, 0, 0, BTRFS_NESTING_NORMAL);
if (IS_ERR(leaf)) {
ret = PTR_ERR(leaf);
leaf = NULL;
@@ -2480,7 +2480,7 @@ static int alloc_reserved_tree_block(struct btrfs_trans_handle *trans,
}
static int alloc_tree_block(struct btrfs_trans_handle *trans,
- struct btrfs_root *root, u64 num_bytes,
+ struct btrfs_root *root, u64 parent,
u64 root_objectid, u64 generation,
u64 flags, struct btrfs_disk_key *key,
int level, u64 empty_size, u64 hint_byte,
@@ -2491,6 +2491,7 @@ static int alloc_tree_block(struct btrfs_trans_handle *trans,
struct btrfs_delayed_extent_op *extent_op;
struct btrfs_space_info *sinfo;
struct btrfs_fs_info *fs_info = root->fs_info;
+ u64 num_bytes = fs_info->nodesize;
bool skinny_metadata = btrfs_fs_incompat(root->fs_info,
SKINNY_METADATA);
@@ -2537,7 +2538,7 @@ static int alloc_tree_block(struct btrfs_trans_handle *trans,
sinfo->bytes_reserved += extent_size;
ret = btrfs_add_delayed_tree_ref(root->fs_info, trans, ins->objectid,
- extent_size, 0, root_objectid,
+ extent_size, parent, root_objectid,
level, BTRFS_ADD_DELAYED_EXTENT,
extent_op, NULL, NULL);
return ret;
@@ -2549,7 +2550,7 @@ static int alloc_tree_block(struct btrfs_trans_handle *trans,
*/
struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans,
struct btrfs_root *root,
- u32 blocksize, u64 root_objectid,
+ u64 parent, u64 root_objectid,
struct btrfs_disk_key *key, int level,
u64 hint, u64 empty_size,
enum btrfs_lock_nesting nest)
@@ -2558,7 +2559,7 @@ struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans,
int ret;
struct extent_buffer *buf;
- ret = alloc_tree_block(trans, root, blocksize, root_objectid,
+ ret = alloc_tree_block(trans, root, parent, root_objectid,
trans->transid, 0, key, level,
empty_size, hint, (u64)-1, &ins);
if (ret) {
In the kernel we pass in the parent to btrfs_alloc_tree_block instead of the blocksize and simply derive the blocksize from the fs_info. Update the function to match the kernel's convention and update all of the callers so we can sync ctree.c easily. Signed-off-by: Josef Bacik <josef@toxicpanda.com> --- check/main.c | 3 +-- cmds/rescue-chunk-recover.c | 3 +-- kernel-shared/ctree.c | 29 ++++++++++++----------------- kernel-shared/ctree.h | 2 +- kernel-shared/disk-io.c | 5 ++--- kernel-shared/extent-tree.c | 9 +++++---- 6 files changed, 22 insertions(+), 29 deletions(-)