diff options
Diffstat (limited to 'fs/btrfs/scrub.c')
| -rw-r--r-- | fs/btrfs/scrub.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c index 5ff6ee70ed2b..00429e4e64f4 100644 --- a/fs/btrfs/scrub.c +++ b/fs/btrfs/scrub.c @@ -1795,11 +1795,15 @@ static int scrub_checksum_data(struct scrub_block *sblock)  	shash->tfm = fs_info->csum_shash;  	crypto_shash_init(shash); -	crypto_shash_digest(shash, kaddr, PAGE_SIZE, csum); -	if (memcmp(csum, spage->csum, sctx->fs_info->csum_size)) -		sblock->checksum_error = 1; +	/* +	 * In scrub_pages() and scrub_pages_for_parity() we ensure each spage +	 * only contains one sector of data. +	 */ +	crypto_shash_digest(shash, kaddr, fs_info->sectorsize, csum); +	if (memcmp(csum, spage->csum, fs_info->csum_size)) +		sblock->checksum_error = 1;  	return sblock->checksum_error;  } | 
