@@ -9246,20 +9246,6 @@ static struct extent_buffer *btrfs_fsck_clear_root(
return c;
}
- memset_extent_buffer(c, 0, 0, sizeof(struct btrfs_header));
- btrfs_set_header_level(c, 0);
- btrfs_set_header_bytenr(c, c->start);
- btrfs_set_header_generation(c, trans->transid);
- btrfs_set_header_backref_rev(c, BTRFS_MIXED_BACKREF_REV);
- btrfs_set_header_owner(c, key->objectid);
-
- write_extent_buffer(c, gfs_info->fs_devices->metadata_uuid,
- btrfs_header_fsid(), BTRFS_FSID_SIZE);
-
- write_extent_buffer(c, gfs_info->chunk_tree_uuid,
- btrfs_header_chunk_tree_uuid(c),
- BTRFS_UUID_SIZE);
-
btrfs_mark_buffer_dirty(c);
/*
@@ -237,18 +237,6 @@ int btrfs_create_root(struct btrfs_trans_handle *trans,
}
new_root->node = node;
- memset_extent_buffer(node, 0, 0, sizeof(struct btrfs_header));
- btrfs_set_header_bytenr(node, node->start);
- btrfs_set_header_generation(node, trans->transid);
- btrfs_set_header_backref_rev(node, BTRFS_MIXED_BACKREF_REV);
- btrfs_set_header_owner(node, objectid);
- write_extent_buffer(node, fs_info->fs_devices->metadata_uuid,
- btrfs_header_fsid(), BTRFS_FSID_SIZE);
- write_extent_buffer(node, fs_info->chunk_tree_uuid,
- btrfs_header_chunk_tree_uuid(node),
- BTRFS_UUID_SIZE);
- btrfs_set_header_nritems(node, 0);
- btrfs_set_header_level(node, 0);
ret = btrfs_inc_ref(trans, new_root, node, 0);
if (ret < 0)
goto free;
@@ -1751,23 +1739,9 @@ static int noinline insert_new_root(struct btrfs_trans_handle *trans,
if (IS_ERR(c))
return PTR_ERR(c);
- memset_extent_buffer(c, 0, 0, sizeof(struct btrfs_header));
btrfs_set_header_nritems(c, 1);
- btrfs_set_header_level(c, level);
- btrfs_set_header_bytenr(c, c->start);
- btrfs_set_header_generation(c, trans->transid);
- btrfs_set_header_backref_rev(c, BTRFS_MIXED_BACKREF_REV);
- btrfs_set_header_owner(c, root->root_key.objectid);
-
root_add_used(root, root->fs_info->nodesize);
- write_extent_buffer(c, root->fs_info->fs_devices->metadata_uuid,
- btrfs_header_fsid(), BTRFS_FSID_SIZE);
-
- write_extent_buffer(c, root->fs_info->chunk_tree_uuid,
- btrfs_header_chunk_tree_uuid(c),
- BTRFS_UUID_SIZE);
-
btrfs_set_node_key(c, &lower_key, 0);
btrfs_set_node_blockptr(c, 0, lower->start);
lower_gen = btrfs_header_generation(lower);
@@ -1876,18 +1850,6 @@ static int split_node(struct btrfs_trans_handle *trans, struct btrfs_root
if (IS_ERR(split))
return PTR_ERR(split);
- memset_extent_buffer(split, 0, 0, sizeof(struct btrfs_header));
- btrfs_set_header_level(split, btrfs_header_level(c));
- btrfs_set_header_bytenr(split, split->start);
- btrfs_set_header_generation(split, trans->transid);
- btrfs_set_header_backref_rev(split, BTRFS_MIXED_BACKREF_REV);
- btrfs_set_header_owner(split, root->root_key.objectid);
- write_extent_buffer(split, root->fs_info->fs_devices->metadata_uuid,
- btrfs_header_fsid(), BTRFS_FSID_SIZE);
- write_extent_buffer(split, root->fs_info->chunk_tree_uuid,
- btrfs_header_chunk_tree_uuid(split),
- BTRFS_UUID_SIZE);
-
root_add_used(root, root->fs_info->nodesize);
copy_extent_buffer(split, c,
@@ -2445,19 +2407,6 @@ again:
return PTR_ERR(right);
}
- memset_extent_buffer(right, 0, 0, sizeof(struct btrfs_header));
- btrfs_set_header_bytenr(right, right->start);
- btrfs_set_header_generation(right, trans->transid);
- btrfs_set_header_backref_rev(right, BTRFS_MIXED_BACKREF_REV);
- btrfs_set_header_owner(right, root->root_key.objectid);
- btrfs_set_header_level(right, 0);
- write_extent_buffer(right, root->fs_info->fs_devices->metadata_uuid,
- btrfs_header_fsid(), BTRFS_FSID_SIZE);
-
- write_extent_buffer(right, root->fs_info->chunk_tree_uuid,
- btrfs_header_chunk_tree_uuid(right),
- BTRFS_UUID_SIZE);
-
root_add_used(root, root->fs_info->nodesize);
if (split == 0) {
@@ -2458,17 +2458,7 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans,
goto fail;
}
- memset_extent_buffer(leaf, 0, 0, sizeof(struct btrfs_header));
- btrfs_set_header_bytenr(leaf, leaf->start);
- btrfs_set_header_generation(leaf, trans->transid);
- btrfs_set_header_backref_rev(leaf, BTRFS_MIXED_BACKREF_REV);
- btrfs_set_header_owner(leaf, root->root_key.objectid);
root->node = leaf;
- write_extent_buffer(leaf, fs_info->fs_devices->metadata_uuid,
- btrfs_header_fsid(), BTRFS_FSID_SIZE);
- write_extent_buffer(leaf, fs_info->chunk_tree_uuid,
- btrfs_header_chunk_tree_uuid(leaf),
- BTRFS_UUID_SIZE);
btrfs_mark_buffer_dirty(leaf);
extent_buffer_get(root->node);
@@ -2588,6 +2588,17 @@ struct extent_buffer *btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
}
btrfs_set_buffer_uptodate(buf);
trans->blocks_used++;
+ memset_extent_buffer(buf, 0, 0, sizeof(struct btrfs_header));
+ btrfs_set_header_level(buf, level);
+ btrfs_set_header_bytenr(buf, buf->start);
+ btrfs_set_header_generation(buf, trans->transid);
+ btrfs_set_header_backref_rev(buf, BTRFS_MIXED_BACKREF_REV);
+ btrfs_set_header_owner(buf, root_objectid);
+ write_extent_buffer(buf, root->fs_info->fs_devices->metadata_uuid,
+ btrfs_header_fsid(), BTRFS_FSID_SIZE);
+ write_extent_buffer(buf, root->fs_info->chunk_tree_uuid,
+ btrfs_header_chunk_tree_uuid(buf),
+ BTRFS_UUID_SIZE);
return buf;
}
We are copying this init code everywhere we call btrfs_alloc_free_block, fix this by putting it inside the helper itself. Signed-off-by: Josef Bacik <josef@toxicpanda.com> --- check/main.c | 14 ---------- kernel-shared/ctree.c | 51 ------------------------------------- kernel-shared/disk-io.c | 10 -------- kernel-shared/extent-tree.c | 11 ++++++++ 4 files changed, 11 insertions(+), 75 deletions(-)