[Top] [All Lists]

Re: [PATCH 3/9] repair: ensure prefetched buffers have CRCs validated

To: Brian Foster <bfoster@xxxxxxxxxx>
Subject: Re: [PATCH 3/9] repair: ensure prefetched buffers have CRCs validated
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Wed, 16 Apr 2014 10:41:45 +1000
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20140415220559.GE3470@xxxxxxxxxxxxxx>
References: <1397550301-31883-1-git-send-email-david@xxxxxxxxxxxxx> <1397550301-31883-4-git-send-email-david@xxxxxxxxxxxxx> <20140415194000.GB3470@xxxxxxxxxxxxxx> <20140415214642.GN15995@dastard> <20140415220559.GE3470@xxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Tue, Apr 15, 2014 at 06:06:00PM -0400, Brian Foster wrote:
> On Wed, Apr 16, 2014 at 07:46:42AM +1000, Dave Chinner wrote:
> > On Tue, Apr 15, 2014 at 03:40:00PM -0400, Brian Foster wrote:
> > > Should we always expect an unchecked buffer to be read with an ops
> > > vector before being written? Even if so, this might look cleaner if we
> > > didn't encode the possibility of running a read verifier on a dirty
> > > buffer. I presume that would always fail as the crc is updated in the
> > > write verifier.
> > 
> > It should fail, and that's a good thing because writing to an
> > unchecked buffer would indicate that we didn't validate it properly
> > in the first place. Hence I thought that doing it this way leaves
> > a canary that traps other problem usage with unchecked buffers.
> > 
> > Realistically, we shouldn't be writing unchecked buffers - prefetch
> > doesn't touch buffers, it just does IO, and so someone else has to
> > read the buffers before they can be dirtied. If it's read without an
> > ops structure then modified and read again with an ops structure,
> > we'll catch it...
> > 
> Ah, I see. That sounds good, but a small comment there with the
> reasoning to allow a read verifier to run on a dirty buffer would be
> nice. :)

Ok, I'll add one.


Dave Chinner

<Prev in Thread] Current Thread [Next in Thread>