[PATCH 1/2] xfs: add CRC infrastructure
Andi Kleen
andi at firstfloor.org
Wed Nov 7 10:21:27 CST 2012
Dave Chinner <david at fromorbit.com> writes:
> + */
> +static inline __uint32_t
> +xfs_start_cksum(char *buffer, size_t length, unsigned long cksum_offset)
> +{
> + __uint32_t zero = 0;
> + __uint32_t crc;
> +
> + /* Calculate CRC up to the checksum. */
> + crc = crc32c(XFS_CRC_SEED, buffer, cksum_offset);
> +
> + /* Skip checksum field */
> + crc = crc32c(crc, &zero, sizeof(__u32));
> +
> + /* Calculate the rest of the CRC. */
> + return crc32c(crc, &buffer[cksum_offset + sizeof(__be32)],
> + length - (cksum_offset + sizeof(__be32)));
Don't you need to remap a zero result to some other value, otherwise a
real zero checksum will never be checked?
-Andi
--
ak at linux.intel.com -- Speaking for myself only
More information about the xfs
mailing list