Signed-off-by: Johannes Thumshirn <jthumsh...@suse.de>
---
 btrfs-sb-mod.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/btrfs-sb-mod.c b/btrfs-sb-mod.c
index 932c2a0432ef..d9630f187d0f 100644
--- a/btrfs-sb-mod.c
+++ b/btrfs-sb-mod.c
@@ -35,11 +35,13 @@ static int check_csum_superblock(void *sb)
 {
        u8 result[csum_size];
        u32 crc = ~(u32)0;
+       u16 csum_type = btrfs_super_csum_type(sb);
 
-       crc = btrfs_csum_data((char *)sb + BTRFS_CSUM_SIZE,
+       crc = btrfs_csum_data(csum_type,
+                             (char *)sb + BTRFS_CSUM_SIZE,
                                (u8 *)&crc,
                                BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE);
-       btrfs_csum_final(crc, result);
+       btrfs_csum_final(csum_type, crc, result);
 
        return !memcmp(sb, &result, csum_size);
 }
@@ -49,17 +51,20 @@ static void update_block_csum(void *block, int is_sb)
        u8 result[csum_size];
        struct btrfs_header *hdr;
        u32 crc = ~(u32)0;
+       u16 csum_type = btrfs_super_csum_type(block);
 
        if (is_sb) {
-               crc = btrfs_csum_data((char *)block + BTRFS_CSUM_SIZE,
+               crc = btrfs_csum_data(csum_type,
+                                     (char *)block + BTRFS_CSUM_SIZE,
                                      (u8 *)&crc,
                                BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE);
        } else {
-               crc = btrfs_csum_data((char *)block + BTRFS_CSUM_SIZE,
+               crc = btrfs_csum_data(csum_type,
+                                     (char *)block + BTRFS_CSUM_SIZE,
                                      (u8 *)&crc,
                                BLOCKSIZE - BTRFS_CSUM_SIZE);
        }
-       btrfs_csum_final(crc, result);
+       btrfs_csum_final(csum_type, crc, result);
        memset(block, 0, BTRFS_CSUM_SIZE);
        hdr = (struct btrfs_header *)block;
        memcpy(&hdr->csum, result, csum_size);
-- 
2.16.4

Reply via email to