From: David Sterba Date: Fri, 29 May 2020 13:43:14 +0000 (+0200) Subject: btrfs: scrub: remove temporary csum array in scrub_checksum_super X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=74710cf1fbdc74b1593be953e85b3f392c9f43a4;p=linux.git btrfs: scrub: remove temporary csum array in scrub_checksum_super 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 --- diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index 13ee43f297515..abb39c5255d27 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -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) {