btrfs: scrub: remove temporary csum array in scrub_checksum_super
authorDavid Sterba <dsterba@suse.com>
Fri, 29 May 2020 13:43:14 +0000 (15:43 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 27 Jul 2020 10:55:22 +0000 (12:55 +0200)
The page contents with the checksum is available during the entire
function so we don't need to make a copy.

Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/scrub.c

index 13ee43f..abb39c5 100644 (file)
@@ -1904,7 +1904,6 @@ static int scrub_checksum_super(struct scrub_block *sblock)
        struct btrfs_fs_info *fs_info = sctx->fs_info;
        SHASH_DESC_ON_STACK(shash, fs_info->csum_shash);
        u8 calculated_csum[BTRFS_CSUM_SIZE];
-       u8 on_disk_csum[BTRFS_CSUM_SIZE];
        struct page *page;
        char *kaddr;
        int fail_gen = 0;
@@ -1914,7 +1913,6 @@ static int scrub_checksum_super(struct scrub_block *sblock)
        page = sblock->pagev[0]->page;
        kaddr = page_address(page);
        s = (struct btrfs_super_block *)kaddr;
-       memcpy(on_disk_csum, s->csum, sctx->csum_size);
 
        if (sblock->pagev[0]->logical != btrfs_super_bytenr(s))
                ++fail_cor;
@@ -1930,7 +1928,7 @@ static int scrub_checksum_super(struct scrub_block *sblock)
        crypto_shash_digest(shash, kaddr + BTRFS_CSUM_SIZE,
                        BTRFS_SUPER_INFO_SIZE - BTRFS_CSUM_SIZE, calculated_csum);
 
-       if (memcmp(calculated_csum, on_disk_csum, sctx->csum_size))
+       if (memcmp(calculated_csum, s->csum, sctx->csum_size))
                ++fail_cor;
 
        if (fail_cor + fail_gen) {