On Wed, Nov 07, 2012 at 10:39:46PM +0100, Andi Kleen wrote:
> > Why would that be necessary? We never include the checksum field in
> > the calculation when setting it or verifiying it, and the
> > verification uses exactly the same method as the original
> > calculation to check the CRC, so it doesn't matter if the CRC value
> > is zero or not - if it matches (zero or otherwise), the validation
> > passes....
> I thought zero meant the checksum is not there? You stated that
> somewhere else.
That's only to avoid spurious warnings when moving from an existing
kernel to a new kernel that issues advisory warnings on mismatches.
For enforcement, though, when the on-disk format changes so that all
metadata is CRC protected, determination of whether zero is a valid
CRC value is determined by a superblock feature bit, not a magic CRC
Hence mapping the zero value just for advisory warnings really
doesn't buy us that much other than complexity for this single case.