Thread (55 messages) 55 messages, 3 authors, 2021-07-16

Re: [PATCH 01/16] xfs: sb verifier doesn't handle uncached sb buffer

From: Dave Chinner <david@fromorbit.com>
Date: 2021-07-14 09:38:04

On Wed, Jul 14, 2021 at 07:43:19AM +0100, Christoph Hellwig wrote:
On Wed, Jul 14, 2021 at 02:18:57PM +1000, Dave Chinner wrote:
quoted
From: Dave Chinner <redacted>

The verifier checks explicitly for bp->b_bn == XFS_SB_DADDR to match
the primary superblock buffer, but the primary superblock is an
uncached buffer and so bp->b_bn is always -1ULL. Hence this never
matches and the CRC error reporting is wholly dependent on the
mount superblock already being populated so CRC feature checks pass
and allow CRC errors to be reported.

Fix this so that the primary superblock CRC error reporting is not
dependent on already having read the superblock into memory.
Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

.. in the long run we really need to kill of b_bn to avoid this
kind of confusion.
b_bn is supposed to only be an internal cache index these days. We
need that index in the first cacheline of the struct xfs_buf for
performance reasons (so traversals fetch only a single cacheline per
level), so perhaps a rename is in order just to catch all these
remaining users that shouldn't be using it...

Cheers,

Dave.

-- 
Dave Chinner
david@fromorbit.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help