On Mon, Feb 03, 2025 at 02:20:31PM -0800, Darrick J. Wong wrote:
On Mon, Feb 03, 2025 at 10:43:11AM +0100, Christoph Hellwig wrote:
quoted
This is a quick hack to demonstrate how data checksumming can be
implemented when it can be stored in the out of line metadata for each
logical block. It builds on top of the previous PI infrastructure
and instead of generating/verifying protection information it simply
generates and verifies a crc32c checksum and stores it in the non-PI
PI can do crc32c now? I thought it could only do that old crc16 from
like 15 years ago and crc64?
NVMe has a protection information format with a crc32c, but it's not
supported by Linux yet.
If we try to throw crc32c at a device,
won't it then reject the "incorrect" checksums? Or is there some other
magic in here where it works and I'm just too out of date to know?
This patch implements XFS-level data checksums on devices that implement
non-PI metadata, that is the device allows to store extra data with the
LBA, but doesn't actually interpret and verify it іn any way.
The crc32c generation and validation looks decent though we're
definitely going to want an inode flag so that we're not stuck with
stable page writes.
Yeah, support the NOCOW flag, have a sb flag to enable the checksums,
maybe even a field about what checksum to use, yodda, yodda.