diff options
Diffstat (limited to 'fs/btrfs/crc32c.h')
-rw-r--r-- | fs/btrfs/crc32c.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/btrfs/crc32c.h b/fs/btrfs/crc32c.h new file mode 100644 index 000000000000..a93255b4ee27 --- /dev/null +++ b/fs/btrfs/crc32c.h | |||
@@ -0,0 +1,17 @@ | |||
1 | #include <asm/byteorder.h> | ||
2 | #include <linux/crc32c.h> | ||
3 | #include <linux/version.h> | ||
4 | |||
5 | /** | ||
6 | * implementation of crc32c_le() changed in linux-2.6.23, | ||
7 | * has of v0.13 btrfs-progs is using the latest version. | ||
8 | * We must workaround older implementations of crc32c_le() | ||
9 | * found on older kernel versions. | ||
10 | */ | ||
11 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) | ||
12 | #define btrfs_crc32c(seed, data, length) \ | ||
13 | __cpu_to_le32( crc32c( __le32_to_cpu(seed), data, length) ) | ||
14 | #else | ||
15 | #define btrfs_crc32c(seed, data, length) \ | ||
16 | crc32c(seed, data, length) | ||
17 | #endif | ||