Now that Nikolay's XXHASH64 support for the Crypto API has landed and BTRFS is
prepared for an easy addition of new checksums, this patchset implements
XXHASH64 as a second, fast but not cryptographically secure checksum hash.

For changes since v2, please see the individual patches. Additionally a patch
moving the CRC32C implementation from kernel-lib/ to crypto/ was added.

For changes since v1, please see the individual patches. Additionally a unit
test was added for regression testing this series.

David Sterba (3):
  btrfs-progs: update checksumming api
  btrfs-progs: add xxhash sources
  btrfs-progs: add xxhash64 as checksum algorithm

Johannes Thumshirn (9):
  btrfs-progs: don't blindly assume crc32c in csum_tree_block_size()
  btrfs-progs: cache csum_type in recover_control
  btrfs-progs: add checksum type to checksumming functions
  btrfs-progs: don't assume checksums are always 4 bytes
  btrfs-progs: pass checksum type to
    btrfs_csum_data()/btrfs_csum_final()
  btrfs-progs: simplify update_block_csum() in btrfs-sb-mod.c
  btrfs-progs: add option for checksum type to mkfs
  btrfs-progs: move crc32c implementation to crypto/
  btrfs-progs: add test-case for mkfs with xxhash64

 Android.mk                                  |    4 +-
 Makefile                                    |    7 +-
 btrfs-corrupt-block.c                       |    3 +-
 btrfs-crc.c                                 |    2 +-
 btrfs-find-root.c                           |    2 +-
 btrfs-sb-mod.c                              |   32 +-
 btrfs.c                                     |    2 +-
 check/main.c                                |   20 +-
 cmds/inspect-dump-super.c                   |   38 +-
 cmds/rescue-chunk-recover.c                 |   25 +-
 cmds/rescue-super-recover.c                 |    2 +-
 common/utils.c                              |    2 +-
 convert/common.c                            |   14 +-
 convert/main.c                              |    5 +-
 {kernel-lib => crypto}/crc32c.c             |    2 +-
 {kernel-lib => crypto}/crc32c.h             |    0
 crypto/hash.c                               |   16 +
 crypto/hash.h                               |   10 +
 crypto/xxhash.c                             | 1024 +++++++++++++++++++++++++++
 crypto/xxhash.h                             |  445 ++++++++++++
 ctree.h                                     |   18 +-
 disk-io.c                                   |   82 ++-
 disk-io.h                                   |    8 +-
 extent-tree.c                               |    2 +-
 file-item.c                                 |   13 +-
 free-space-cache.c                          |    4 +-
 hash.h                                      |    2 +-
 image/main.c                                |    9 +-
 image/sanitize.c                            |    2 +-
 library-test.c                              |    2 +-
 mkfs/common.c                               |   23 +-
 mkfs/common.h                               |    2 +
 mkfs/main.c                                 |   29 +-
 send-stream.c                               |    2 +-
 tests/mkfs-tests/001-basic-profiles/test.sh |    2 +
 35 files changed, 1709 insertions(+), 146 deletions(-)
 rename {kernel-lib => crypto}/crc32c.c (99%)
 rename {kernel-lib => crypto}/crc32c.h (100%)
 create mode 100644 crypto/hash.c
 create mode 100644 crypto/hash.h
 create mode 100644 crypto/xxhash.c
 create mode 100644 crypto/xxhash.h

-- 
2.16.4

Reply via email to