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: > > From: Dave Chinner <dchinner@xxxxxxxxxx> > > > > 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@xxxxxx> > > .. 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@xxxxxxxxxxxxx