mirror of
https://github.com/kdave/btrfs-progs
synced 2025-01-17 03:00:45 +00:00
btrfs-progs: don't blindly assume crc32c in csum_tree_block_size()
The callers of csum_tree_block_size() blindly assume we're only having crc32c as a possible checksum and thus pass in btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32] for the size argument of csum_tree_block_size(). Reviewed-by: Nikolay Borisov <nborisov@suse.com> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
779ada6edd
commit
af56955876
@ -101,7 +101,7 @@ static int btrfs_create_tree_root(int fd, struct btrfs_mkfs_config *cfg,
|
||||
}
|
||||
|
||||
/* generate checksum */
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[cfg->csum_type], 0);
|
||||
|
||||
/* write back root tree */
|
||||
ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_ROOT_TREE]);
|
||||
@ -292,7 +292,7 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg)
|
||||
btrfs_set_header_bytenr(buf, cfg->blocks[MKFS_EXTENT_TREE]);
|
||||
btrfs_set_header_owner(buf, BTRFS_EXTENT_TREE_OBJECTID);
|
||||
btrfs_set_header_nritems(buf, nritems);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[cfg->csum_type], 0);
|
||||
ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_EXTENT_TREE]);
|
||||
if (ret != cfg->nodesize) {
|
||||
ret = (ret < 0 ? -errno : -EIO);
|
||||
@ -380,7 +380,7 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg)
|
||||
btrfs_set_header_bytenr(buf, cfg->blocks[MKFS_CHUNK_TREE]);
|
||||
btrfs_set_header_owner(buf, BTRFS_CHUNK_TREE_OBJECTID);
|
||||
btrfs_set_header_nritems(buf, nritems);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[cfg->csum_type], 0);
|
||||
ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_CHUNK_TREE]);
|
||||
if (ret != cfg->nodesize) {
|
||||
ret = (ret < 0 ? -errno : -EIO);
|
||||
@ -420,7 +420,7 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg)
|
||||
btrfs_set_header_bytenr(buf, cfg->blocks[MKFS_DEV_TREE]);
|
||||
btrfs_set_header_owner(buf, BTRFS_DEV_TREE_OBJECTID);
|
||||
btrfs_set_header_nritems(buf, nritems);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[cfg->csum_type], 0);
|
||||
ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_DEV_TREE]);
|
||||
if (ret != cfg->nodesize) {
|
||||
ret = (ret < 0 ? -errno : -EIO);
|
||||
@ -433,7 +433,7 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg)
|
||||
btrfs_set_header_bytenr(buf, cfg->blocks[MKFS_FS_TREE]);
|
||||
btrfs_set_header_owner(buf, BTRFS_FS_TREE_OBJECTID);
|
||||
btrfs_set_header_nritems(buf, 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[cfg->csum_type], 0);
|
||||
ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_FS_TREE]);
|
||||
if (ret != cfg->nodesize) {
|
||||
ret = (ret < 0 ? -errno : -EIO);
|
||||
@ -445,7 +445,7 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg)
|
||||
btrfs_set_header_bytenr(buf, cfg->blocks[MKFS_CSUM_TREE]);
|
||||
btrfs_set_header_owner(buf, BTRFS_CSUM_TREE_OBJECTID);
|
||||
btrfs_set_header_nritems(buf, 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[cfg->csum_type], 0);
|
||||
ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_CSUM_TREE]);
|
||||
if (ret != cfg->nodesize) {
|
||||
ret = (ret < 0 ? -errno : -EIO);
|
||||
@ -456,7 +456,7 @@ int make_btrfs(int fd, struct btrfs_mkfs_config *cfg)
|
||||
memset(buf->data, 0, BTRFS_SUPER_INFO_SIZE);
|
||||
memcpy(buf->data, &super, sizeof(super));
|
||||
buf->len = BTRFS_SUPER_INFO_SIZE;
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
|
||||
csum_tree_block_size(buf, btrfs_csum_sizes[cfg->csum_type], 0);
|
||||
ret = pwrite(fd, buf->data, BTRFS_SUPER_INFO_SIZE,
|
||||
cfg->blocks[MKFS_SUPER_BLOCK]);
|
||||
if (ret != BTRFS_SUPER_INFO_SIZE) {
|
||||
|
Loading…
Reference in New Issue
Block a user