diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/btrfs/ctree.c | 29 | ||||
| -rw-r--r-- | fs/btrfs/disk-io.c | 14 | ||||
| -rw-r--r-- | fs/btrfs/extent-tree.c | 16 | ||||
| -rw-r--r-- | fs/btrfs/ioctl.c | 8 |
4 files changed, 13 insertions, 54 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index 18fd80e2f278..18f1ca1c5bd9 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c | |||
| @@ -3358,17 +3358,7 @@ static noinline int insert_new_root(struct btrfs_trans_handle *trans, | |||
| 3358 | 3358 | ||
| 3359 | root_add_used(root, fs_info->nodesize); | 3359 | root_add_used(root, fs_info->nodesize); |
| 3360 | 3360 | ||
| 3361 | memzero_extent_buffer(c, 0, sizeof(struct btrfs_header)); | ||
| 3362 | btrfs_set_header_nritems(c, 1); | 3361 | btrfs_set_header_nritems(c, 1); |
| 3363 | btrfs_set_header_level(c, level); | ||
| 3364 | btrfs_set_header_bytenr(c, c->start); | ||
| 3365 | btrfs_set_header_generation(c, trans->transid); | ||
| 3366 | btrfs_set_header_backref_rev(c, BTRFS_MIXED_BACKREF_REV); | ||
| 3367 | btrfs_set_header_owner(c, root->root_key.objectid); | ||
| 3368 | |||
| 3369 | write_extent_buffer_fsid(c, fs_info->fsid); | ||
| 3370 | write_extent_buffer_chunk_tree_uuid(c, fs_info->chunk_tree_uuid); | ||
| 3371 | |||
| 3372 | btrfs_set_node_key(c, &lower_key, 0); | 3362 | btrfs_set_node_key(c, &lower_key, 0); |
| 3373 | btrfs_set_node_blockptr(c, 0, lower->start); | 3363 | btrfs_set_node_blockptr(c, 0, lower->start); |
| 3374 | lower_gen = btrfs_header_generation(lower); | 3364 | lower_gen = btrfs_header_generation(lower); |
| @@ -3497,15 +3487,7 @@ static noinline int split_node(struct btrfs_trans_handle *trans, | |||
| 3497 | return PTR_ERR(split); | 3487 | return PTR_ERR(split); |
| 3498 | 3488 | ||
| 3499 | root_add_used(root, fs_info->nodesize); | 3489 | root_add_used(root, fs_info->nodesize); |
| 3500 | 3490 | ASSERT(btrfs_header_level(c) == level); | |
| 3501 | memzero_extent_buffer(split, 0, sizeof(struct btrfs_header)); | ||
| 3502 | btrfs_set_header_level(split, btrfs_header_level(c)); | ||
| 3503 | btrfs_set_header_bytenr(split, split->start); | ||
| 3504 | btrfs_set_header_generation(split, trans->transid); | ||
| 3505 | btrfs_set_header_backref_rev(split, BTRFS_MIXED_BACKREF_REV); | ||
| 3506 | btrfs_set_header_owner(split, root->root_key.objectid); | ||
| 3507 | write_extent_buffer_fsid(split, fs_info->fsid); | ||
| 3508 | write_extent_buffer_chunk_tree_uuid(split, fs_info->chunk_tree_uuid); | ||
| 3509 | 3491 | ||
| 3510 | ret = tree_mod_log_eb_copy(fs_info, split, c, 0, mid, c_nritems - mid); | 3492 | ret = tree_mod_log_eb_copy(fs_info, split, c, 0, mid, c_nritems - mid); |
| 3511 | if (ret) { | 3493 | if (ret) { |
| @@ -4291,15 +4273,6 @@ again: | |||
| 4291 | 4273 | ||
| 4292 | root_add_used(root, fs_info->nodesize); | 4274 | root_add_used(root, fs_info->nodesize); |
| 4293 | 4275 | ||
| 4294 | memzero_extent_buffer(right, 0, sizeof(struct btrfs_header)); | ||
| 4295 | btrfs_set_header_bytenr(right, right->start); | ||
| 4296 | btrfs_set_header_generation(right, trans->transid); | ||
| 4297 | btrfs_set_header_backref_rev(right, BTRFS_MIXED_BACKREF_REV); | ||
| 4298 | btrfs_set_header_owner(right, root->root_key.objectid); | ||
| 4299 | btrfs_set_header_level(right, 0); | ||
| 4300 | write_extent_buffer_fsid(right, fs_info->fsid); | ||
| 4301 | write_extent_buffer_chunk_tree_uuid(right, fs_info->chunk_tree_uuid); | ||
| 4302 | |||
| 4303 | if (split == 0) { | 4276 | if (split == 0) { |
| 4304 | if (mid <= slot) { | 4277 | if (mid <= slot) { |
| 4305 | btrfs_set_header_nritems(right, 0); | 4278 | btrfs_set_header_nritems(right, 0); |
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index f3224e23d5fa..6318ac2539d3 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
| @@ -1292,15 +1292,7 @@ struct btrfs_root *btrfs_create_tree(struct btrfs_trans_handle *trans, | |||
| 1292 | goto fail; | 1292 | goto fail; |
| 1293 | } | 1293 | } |
| 1294 | 1294 | ||
| 1295 | memzero_extent_buffer(leaf, 0, sizeof(struct btrfs_header)); | ||
| 1296 | btrfs_set_header_bytenr(leaf, leaf->start); | ||
| 1297 | btrfs_set_header_generation(leaf, trans->transid); | ||
| 1298 | btrfs_set_header_backref_rev(leaf, BTRFS_MIXED_BACKREF_REV); | ||
| 1299 | btrfs_set_header_owner(leaf, objectid); | ||
| 1300 | root->node = leaf; | 1295 | root->node = leaf; |
| 1301 | |||
| 1302 | write_extent_buffer_fsid(leaf, fs_info->fsid); | ||
| 1303 | write_extent_buffer_chunk_tree_uuid(leaf, fs_info->chunk_tree_uuid); | ||
| 1304 | btrfs_mark_buffer_dirty(leaf); | 1296 | btrfs_mark_buffer_dirty(leaf); |
| 1305 | 1297 | ||
| 1306 | root->commit_root = btrfs_root_node(root); | 1298 | root->commit_root = btrfs_root_node(root); |
| @@ -1374,14 +1366,8 @@ static struct btrfs_root *alloc_log_tree(struct btrfs_trans_handle *trans, | |||
| 1374 | return ERR_CAST(leaf); | 1366 | return ERR_CAST(leaf); |
| 1375 | } | 1367 | } |
| 1376 | 1368 | ||
| 1377 | memzero_extent_buffer(leaf, 0, sizeof(struct btrfs_header)); | ||
| 1378 | btrfs_set_header_bytenr(leaf, leaf->start); | ||
| 1379 | btrfs_set_header_generation(leaf, trans->transid); | ||
| 1380 | btrfs_set_header_backref_rev(leaf, BTRFS_MIXED_BACKREF_REV); | ||
| 1381 | btrfs_set_header_owner(leaf, BTRFS_TREE_LOG_OBJECTID); | ||
| 1382 | root->node = leaf; | 1369 | root->node = leaf; |
| 1383 | 1370 | ||
| 1384 | write_extent_buffer_fsid(root->node, fs_info->fsid); | ||
| 1385 | btrfs_mark_buffer_dirty(root->node); | 1371 | btrfs_mark_buffer_dirty(root->node); |
| 1386 | btrfs_tree_unlock(root->node); | 1372 | btrfs_tree_unlock(root->node); |
| 1387 | return root; | 1373 | return root; |
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 472872a6cc27..0ca3999356c7 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
| @@ -8302,7 +8302,7 @@ int btrfs_alloc_logged_file_extent(struct btrfs_trans_handle *trans, | |||
| 8302 | 8302 | ||
| 8303 | static struct extent_buffer * | 8303 | static struct extent_buffer * |
| 8304 | btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root, | 8304 | btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root, |
| 8305 | u64 bytenr, int level) | 8305 | u64 bytenr, int level, u64 owner) |
| 8306 | { | 8306 | { |
| 8307 | struct btrfs_fs_info *fs_info = root->fs_info; | 8307 | struct btrfs_fs_info *fs_info = root->fs_info; |
| 8308 | struct extent_buffer *buf; | 8308 | struct extent_buffer *buf; |
| @@ -8311,7 +8311,6 @@ btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root, | |||
| 8311 | if (IS_ERR(buf)) | 8311 | if (IS_ERR(buf)) |
| 8312 | return buf; | 8312 | return buf; |
| 8313 | 8313 | ||
| 8314 | btrfs_set_header_generation(buf, trans->transid); | ||
| 8315 | btrfs_set_buffer_lockdep_class(root->root_key.objectid, buf, level); | 8314 | btrfs_set_buffer_lockdep_class(root->root_key.objectid, buf, level); |
| 8316 | btrfs_tree_lock(buf); | 8315 | btrfs_tree_lock(buf); |
| 8317 | clean_tree_block(fs_info, buf); | 8316 | clean_tree_block(fs_info, buf); |
| @@ -8320,6 +8319,14 @@ btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root, | |||
| 8320 | btrfs_set_lock_blocking(buf); | 8319 | btrfs_set_lock_blocking(buf); |
| 8321 | set_extent_buffer_uptodate(buf); | 8320 | set_extent_buffer_uptodate(buf); |
| 8322 | 8321 | ||
| 8322 | memzero_extent_buffer(buf, 0, sizeof(struct btrfs_header)); | ||
| 8323 | btrfs_set_header_level(buf, level); | ||
| 8324 | btrfs_set_header_bytenr(buf, buf->start); | ||
| 8325 | btrfs_set_header_generation(buf, trans->transid); | ||
| 8326 | btrfs_set_header_backref_rev(buf, BTRFS_MIXED_BACKREF_REV); | ||
| 8327 | btrfs_set_header_owner(buf, owner); | ||
| 8328 | write_extent_buffer_fsid(buf, fs_info->fsid); | ||
| 8329 | write_extent_buffer_chunk_tree_uuid(buf, fs_info->chunk_tree_uuid); | ||
| 8323 | if (root->root_key.objectid == BTRFS_TREE_LOG_OBJECTID) { | 8330 | if (root->root_key.objectid == BTRFS_TREE_LOG_OBJECTID) { |
| 8324 | buf->log_index = root->log_transid % 2; | 8331 | buf->log_index = root->log_transid % 2; |
| 8325 | /* | 8332 | /* |
| @@ -8428,7 +8435,7 @@ struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans, | |||
| 8428 | #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS | 8435 | #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS |
| 8429 | if (btrfs_is_testing(fs_info)) { | 8436 | if (btrfs_is_testing(fs_info)) { |
| 8430 | buf = btrfs_init_new_buffer(trans, root, root->alloc_bytenr, | 8437 | buf = btrfs_init_new_buffer(trans, root, root->alloc_bytenr, |
| 8431 | level); | 8438 | level, root_objectid); |
| 8432 | if (!IS_ERR(buf)) | 8439 | if (!IS_ERR(buf)) |
| 8433 | root->alloc_bytenr += blocksize; | 8440 | root->alloc_bytenr += blocksize; |
| 8434 | return buf; | 8441 | return buf; |
| @@ -8444,7 +8451,8 @@ struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans, | |||
| 8444 | if (ret) | 8451 | if (ret) |
| 8445 | goto out_unuse; | 8452 | goto out_unuse; |
| 8446 | 8453 | ||
| 8447 | buf = btrfs_init_new_buffer(trans, root, ins.objectid, level); | 8454 | buf = btrfs_init_new_buffer(trans, root, ins.objectid, level, |
| 8455 | root_objectid); | ||
| 8448 | if (IS_ERR(buf)) { | 8456 | if (IS_ERR(buf)) { |
| 8449 | ret = PTR_ERR(buf); | 8457 | ret = PTR_ERR(buf); |
| 8450 | goto out_free_reserved; | 8458 | goto out_free_reserved; |
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 0c4b9f364e84..08b8c0b346b3 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
| @@ -616,14 +616,6 @@ static noinline int create_subvol(struct inode *dir, | |||
| 616 | goto fail; | 616 | goto fail; |
| 617 | } | 617 | } |
| 618 | 618 | ||
| 619 | memzero_extent_buffer(leaf, 0, sizeof(struct btrfs_header)); | ||
| 620 | btrfs_set_header_bytenr(leaf, leaf->start); | ||
| 621 | btrfs_set_header_generation(leaf, trans->transid); | ||
| 622 | btrfs_set_header_backref_rev(leaf, BTRFS_MIXED_BACKREF_REV); | ||
| 623 | btrfs_set_header_owner(leaf, objectid); | ||
| 624 | |||
| 625 | write_extent_buffer_fsid(leaf, fs_info->fsid); | ||
| 626 | write_extent_buffer_chunk_tree_uuid(leaf, fs_info->chunk_tree_uuid); | ||
| 627 | btrfs_mark_buffer_dirty(leaf); | 619 | btrfs_mark_buffer_dirty(leaf); |
| 628 | 620 | ||
| 629 | inode_item = &root_item->inode; | 621 | inode_item = &root_item->inode; |
