[PATCH 32/32] xfs: add CRC checks to the log

Mark Tinguely tinguely at sgi.com
Mon Nov 12 09:37:49 CST 2012


On 11/12/12 05:54, Dave Chinner wrote:
> From: Christoph Hellwig<hch at lst.de>
>
> Implement CRCs for the log buffers.  We re-use a field in
> struct xlog_rec_header that was used for a weak checksum of the
> log buffer payload in debug builds before.
>
> The new checksumming uses the crc32c checksum we will use elsewhere
> in XFS, and also protects the record header and addition cycle data.
>
> Due to this there are some interesting changes in xlog_sync, as we
> need to do the cycle wrapping for the split buffer case much earlier,
> as we would touch the buffer after generating the checksum otherwise.
>
> The CRC calculation is always enabled, even for non-CRC filesystems,
> as adding this CRC does not change the log format. On non-CRC
> filesystems, only issue an alert if a CRC mismatch is found and
> allow recovery to continue - this will act as an indicator that
> log recovery problems are a result of log corruption. On CRC enabled
> filesystems, however, log recovery will fail.
>
> Note that existing debug kernels will write a simple checksum value
> to the log, so the first time this is run on a filesystem taht was
> last used on a debug kernel it will through CRC mismatch warning
> errors. These can be ignored.
>
> Initially based on a patch from Dave Chinner, then modified
> significantly by Christoph Hellwig.  Modified again by Dave Chinner
> to get to this version.
>
> Signed-off-by: Christoph Hellwig<hch at lst.de>
> Signed-off-by: Dave Chinner<dchinner at redhat.com>
> ---


Reviewed-by: Mark Tinguely <tinguely at sgi.com>



More information about the xfs mailing list