On Mon, Apr 21, 2014 at 12:11:06AM -0700, Christoph Hellwig wrote: > On Tue, Apr 15, 2014 at 06:24:57PM +1000, Dave Chinner wrote: > > From: Dave Chinner <dchinner@xxxxxxxxxx> > > > > repair doesn't currently detect verifier errors in AG header > > blocks - apart from the primary superblock they are not detected. > > They are, fortunately, corrected in the important cases (AGF, AGI > > and AGFL) because these structures are rebuilt in phase 5, but if > > you run xfs_repair in checking mode it won't report them as bad. > > Shouldn't we apply the same scheme as for directories here, that is if > it fails with a verifier error re-read without the verifier and then > still do the full check as well? The directory code is the special case - it uses xfs_trans_read_buf* interfaces, which return either a good buffer with no error or an error with no buffer. Hence for the directory code, we have to re-read the buffer without the verifier to grab the unchecked buffer from the cache when the verifier detects an error. > Btw, it might make sense to have special read_buf variants in libxfs > that always return a valid buffer even if the verifier fails, just > telling us about it without having to re-read. That's exactly what they do now - you get the xfs_buf, the data in bp->b_addr and the verifier error in bp->b_error all in one call. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs