xfs: catch buffers written without verifiers attached
authorDave Chinner <dchinner@redhat.com>
Mon, 4 Aug 2014 02:42:40 +0000 (12:42 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 4 Aug 2014 02:42:40 +0000 (12:42 +1000)
commit400b9d88757c0bfbdfa97014e090ec40a31c1282
tree0d1885f0a324e6132be0c996566696c024488855
parent5ef828c4152726f56751c78ea844f08d2b2a4fa3
xfs: catch buffers written without verifiers attached

We recently had a bug where buffers were slipping through log
recovery without any verifier attached to them. This was resulting
in on-disk CRC mismatches for valid data. Add some warning code to
catch this occurrence so that we catch such bugs during development
rather than not being aware they exist.

Note that we cannot do this verification unconditionally as non-CRC
filesystems don't always attach verifiers to the buffers being
written. e.g. during log recovery we cannot identify all the
different types of buffers correctly on non-CRC filesystems, so we
can't attach the correct verifiers in all cases and so we don't
attach any. Hence we don't want on non-CRC filesystems to avoid
spamming the logs with false indications.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_buf.c
fs/xfs/xfs_log.c