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 <wqu@xxxxxxxx>
> Signed-off-by: Tomohiro Misono <misono.tomohiro@xxxxxxxxxxxxxx>
> ---
> 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) {
>
Attachment:
signature.asc
Description: OpenPGP digital signature
