summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/checksum.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/bcachefs/checksum.h')
-rw-r--r--fs/bcachefs/checksum.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/bcachefs/checksum.h b/fs/bcachefs/checksum.h
index e2f2d797f90c..afdbbf702970 100644
--- a/fs/bcachefs/checksum.h
+++ b/fs/bcachefs/checksum.h
@@ -9,6 +9,22 @@
#include <linux/crc64.h>
#include <crypto/chacha.h>
+static inline bool bch2_checksum_mergeable(unsigned type)
+{
+
+ switch (type) {
+ case BCH_CSUM_NONE:
+ case BCH_CSUM_CRC32C:
+ case BCH_CSUM_CRC64:
+ return true;
+ default:
+ return false;
+ }
+}
+
+struct bch_csum bch2_checksum_merge(unsigned, struct bch_csum,
+ struct bch_csum, size_t);
+
static inline u64 bch2_crc64_update(u64 crc, const void *p, size_t len)
{
return crc64_be(crc, p, len);