Re: [PATCH v3 00/13] Add support for other checksums

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 22, 2019 at 10:18:57AM +0200, Johannes Thumshirn wrote:
> This patchset add support for adding new checksum types in BTRFS.
> 
> Currently BTRFS only supports CRC32C as data and metadata checksum, which is
> good if you only want to detect errors due to data corruption in hardware.
> 
> But CRC32C isn't able cover other use-cases like de-duplication or
> cryptographically save data integrity guarantees.
> 
> The following properties made SHA-256 interesting for these use-cases:
> - Still considered cryptographically sound
> - Reasonably well understood by the security industry
> - Result fits into the 32Byte/256Bit we have for the checksum in the on-disk
>   format
> - Small enough collision space to make it feasible for data de-duplication
> - Fast enough to calculate and offloadable to crypto hardware via the kernel's
>   crypto_shash framework.
> 
> The patchset also provides mechanisms for plumbing in different hash
> algorithms relatively easy.
> 
> Unfortunately this patchset also partially reverts commit: 
> 9678c54388b6 ("btrfs: Remove custom crc32c init code")
> 
> This is an intermediate submission, as a) mkfs.btrfs support is still missing
> and b) David requested to have three hash algorithms, where 1 is crc32c, one
> cryptographically secure and one in between.
> 
> A changelog can be found directly in the patches. The branch is also available
> on a gitweb at
> https://git.kernel.org/pub/scm/linux/kernel/git/jth/linux.git/log/?h=btrfs-csum-rework.v3
> 
> Johannes Thumshirn (13):
>   btrfs: use btrfs_csum_data() instead of directly calling crc32c
>   btrfs: resurrect btrfs_crc32c()
>   btrfs: use btrfs_crc32c{,_final}() in for free space cache
>   btrfs: don't assume ordered sums to be 4 bytes
>   btrfs: dont assume compressed_bio sums to be 4 bytes
>   btrfs: format checksums according to type for printing
>   btrfs: add common checksum type validation
>   btrfs: check for supported superblock checksum type before checksum
>     validation
>   btrfs: Simplify btrfs_check_super_csum() and get rid of size
>     assumptions
>   btrfs: add boilerplate code for directly including the crypto
>     framework
>   btrfs: directly call into crypto framework for checsumming
>   btrfs: remove assumption about csum type form
>     btrfs_print_data_csum_error()
>   btrfs: add sha256 as another checksum algorithm

1-5 are reviewed and ok, 6 and 13 should be reworked, 7-12 is ok. I
can't put the branch to next yet due to the csum formatting "issues" but
will do once you resend. Should be ok just 6 and 13 as they're
independent.



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux