On 2018年03月23日 16:20, Misono Tomohiro wrote: > The kernel code no longer has BTRFS_CRC32_SIZE and only uses > btrfs_csum_sizes[]. So, update the progs code as well. > > Suggested-by: Qu Wenruo <w...@suse.com> > Signed-off-by: Tomohiro Misono <misono.tomoh...@jp.fujitsu.com> > --- > convert/common.c | 2 +- > convert/main.c | 2 +- > ctree.h | 3 +-- > image/main.c | 4 ++-- > mkfs/common.c | 14 +++++++------- > 5 files changed, 12 insertions(+), 13 deletions(-) > > diff --git a/convert/common.c b/convert/common.c > index 3860f3b9..2b944fd8 100644 > --- a/convert/common.c > +++ b/convert/common.c > @@ -219,7 +219,7 @@ static inline int write_temp_extent_buffer(int fd, struct > extent_buffer *buf, > { > int ret; > > - csum_tree_block_size(buf, BTRFS_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0);
I'd say the normal kernel way to do this is like this, other than using BTRFS_CSUM_TYPE_CRC32: u16 csum_size = btrfs_super_csum_size(fs_info->super_copy); Thanks, Qu > > /* Temporary extent buffer is always mapped 1:1 on disk */ > ret = pwrite(fd, buf->data, buf->len, bytenr); > diff --git a/convert/main.c b/convert/main.c > index b3ea31d7..6bdfab40 100644 > --- a/convert/main.c > +++ b/convert/main.c > @@ -1026,7 +1026,7 @@ static int migrate_super_block(int fd, u64 old_bytenr) > BUG_ON(btrfs_super_bytenr(super) != old_bytenr); > btrfs_set_super_bytenr(super, BTRFS_SUPER_INFO_OFFSET); > > - csum_tree_block_size(buf, BTRFS_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > ret = pwrite(fd, buf->data, BTRFS_SUPER_INFO_SIZE, > BTRFS_SUPER_INFO_OFFSET); > if (ret != BTRFS_SUPER_INFO_SIZE) > diff --git a/ctree.h b/ctree.h > index 17cdac76..4175cb85 100644 > --- a/ctree.h > +++ b/ctree.h > @@ -167,10 +167,9 @@ struct btrfs_free_space_ctl; > /* csum types */ > #define BTRFS_CSUM_TYPE_CRC32 0 > > +/* four bytes for CRC32 */ > static int btrfs_csum_sizes[] = { 4 }; > > -/* four bytes for CRC32 */ > -#define BTRFS_CRC32_SIZE 4 > #define BTRFS_EMPTY_DIR_SIZE 0 > > #define BTRFS_FT_UNKNOWN 0 > diff --git a/image/main.c b/image/main.c > index 9c75c8b4..5f155c23 100644 > --- a/image/main.c > +++ b/image/main.c > @@ -119,11 +119,11 @@ static struct extent_buffer *alloc_dummy_eb(u64 bytenr, > u32 size); > > static void csum_block(u8 *buf, size_t len) > { > - u8 result[BTRFS_CRC32_SIZE]; > + u8 result[btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32]]; > u32 crc = ~(u32)0; > crc = crc32c(crc, buf + BTRFS_CSUM_SIZE, len - BTRFS_CSUM_SIZE); > btrfs_csum_final(crc, result); > - memcpy(buf, result, BTRFS_CRC32_SIZE); > + memcpy(buf, result, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32]); > } > > static int has_name(struct btrfs_key *key) > diff --git a/mkfs/common.c b/mkfs/common.c > index 16916ca2..50b99639 100644 > --- a/mkfs/common.c > +++ b/mkfs/common.c > @@ -85,7 +85,7 @@ static int btrfs_create_tree_root(int fd, struct > btrfs_mkfs_config *cfg, > } > > /* generate checksum */ > - csum_tree_block_size(buf, BTRFS_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > > /* write back root tree */ > ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_ROOT_TREE]); > @@ -276,7 +276,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_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > ret = pwrite(fd, buf->data, cfg->nodesize, > cfg->blocks[MKFS_EXTENT_TREE]); > if (ret != cfg->nodesize) { > ret = (ret < 0 ? -errno : -EIO); > @@ -364,7 +364,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_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > ret = pwrite(fd, buf->data, cfg->nodesize, > cfg->blocks[MKFS_CHUNK_TREE]); > if (ret != cfg->nodesize) { > ret = (ret < 0 ? -errno : -EIO); > @@ -404,7 +404,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_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_DEV_TREE]); > if (ret != cfg->nodesize) { > ret = (ret < 0 ? -errno : -EIO); > @@ -417,7 +417,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_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_FS_TREE]); > if (ret != cfg->nodesize) { > ret = (ret < 0 ? -errno : -EIO); > @@ -429,7 +429,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_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > ret = pwrite(fd, buf->data, cfg->nodesize, cfg->blocks[MKFS_CSUM_TREE]); > if (ret != cfg->nodesize) { > ret = (ret < 0 ? -errno : -EIO); > @@ -440,7 +440,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_CRC32_SIZE, 0); > + csum_tree_block_size(buf, btrfs_csum_sizes[BTRFS_CSUM_TYPE_CRC32], 0); > ret = pwrite(fd, buf->data, BTRFS_SUPER_INFO_SIZE, > cfg->blocks[MKFS_SUPER_BLOCK]); > if (ret != BTRFS_SUPER_INFO_SIZE) { >
signature.asc
Description: OpenPGP digital signature