btrfs: remove assumption about csum type form btrfs_print_data_csum_error()
authorJohannes Thumshirn <jthumshirn@suse.de>
Mon, 3 Jun 2019 14:58:58 +0000 (16:58 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 1 Jul 2019 11:35:02 +0000 (13:35 +0200)
btrfs_print_data_csum_error() still assumed checksums to be 32 bit in
size.  Make it size agnostic.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/btrfs_inode.h
fs/btrfs/compression.c
fs/btrfs/inode.c

index de13be2a31a1e2f129ae508d2c9f37dc884c11be..f853835c409c1874e8e4f85531226759cdfc9896 100644 (file)
@@ -342,7 +342,7 @@ static inline void btrfs_inode_resume_unlocked_dio(struct btrfs_inode *inode)
 #define CSUM_FMT_VALUE(size, bytes)            size, bytes
 
 static inline void btrfs_print_data_csum_error(struct btrfs_inode *inode,
-               u64 logical_start, u32 csum, u32 csum_expected, int mirror_num)
+               u64 logical_start, u8 *csum, u8 *csum_expected, int mirror_num)
 {
        struct btrfs_root *root = inode->root;
        struct btrfs_super_block *sb = root->fs_info->super_copy;
@@ -354,16 +354,16 @@ static inline void btrfs_print_data_csum_error(struct btrfs_inode *inode,
 "csum failed root %lld ino %lld off %llu csum " CSUM_FMT " expected csum " CSUM_FMT " mirror %d",
                        root->root_key.objectid, btrfs_ino(inode),
                        logical_start,
-                       CSUM_FMT_VALUE(csum_size, &csum),
-                       CSUM_FMT_VALUE(csum_size, &csum_expected),
+                       CSUM_FMT_VALUE(csum_size, csum),
+                       CSUM_FMT_VALUE(csum_size, csum_expected),
                        mirror_num);
        else
                btrfs_warn_rl(root->fs_info,
 "csum failed root %llu ino %llu off %llu csum " CSUM_FMT " expected csum " CSUM_FMT " mirror %d",
                        root->root_key.objectid, btrfs_ino(inode),
                        logical_start,
-                       CSUM_FMT_VALUE(csum_size, &csum),
-                       CSUM_FMT_VALUE(csum_size, &csum_expected),
+                       CSUM_FMT_VALUE(csum_size, csum),
+                       CSUM_FMT_VALUE(csum_size, csum_expected),
                        mirror_num);
 }
 
index 935c0c564c020ae18ba31390a7d7f29430a16ad3..66e21a4e9ea23ff49e0f6c0e94bfdebd79ea6a5a 100644 (file)
@@ -84,8 +84,7 @@ static int check_compressed_csum(struct btrfs_inode *inode,
 
                if (memcmp(&csum, cb_sum, csum_size)) {
                        btrfs_print_data_csum_error(inode, disk_start,
-                                                   *(u32 *)csum, *(u32 *)cb_sum,
-                                                   cb->mirror_num);
+                                       csum, cb_sum, cb->mirror_num);
                        ret = -EIO;
                        goto fail;
                }
index 3d356a0f899076d6ae972b264d6477c6e641eafd..7126493d8d8c479f4c704b77f5778d80788e4b3f 100644 (file)
@@ -3225,8 +3225,8 @@ static int __readpage_endio_check(struct inode *inode,
        kunmap_atomic(kaddr);
        return 0;
 zeroit:
-       btrfs_print_data_csum_error(BTRFS_I(inode), start, *(u32 *)csum,
-                                   *(u32 *)csum_expected, io_bio->mirror_num);
+       btrfs_print_data_csum_error(BTRFS_I(inode), start, csum, csum_expected,
+                                   io_bio->mirror_num);
        memset(kaddr + pgoff, 1, len);
        flush_dcache_page(page);
        kunmap_atomic(kaddr);