[linux-cifs-client] Re: fsx-linux failing with latest cifs-2.6 git tree

Dave Kleikamp shaggy at linux.vnet.ibm.com
Sat Nov 22 20:27:44 GMT 2008


On Sat, 2008-11-22 at 10:39 -0500, Jeff Layton wrote:
> On Fri, 21 Nov 2008 22:47:09 -0600
> Dave Kleikamp <shaggy at linux.vnet.ibm.com> wrote:
> 
> > Nick's point is that it isn't really safe to mark the page Uptodate
> > until cifs_write_end(), since the data being overwritten hasn't yet
> > been.
> > 
> > How about cifs_write_begin() marking the page PageChecked instead of
> > PageUptodate, of course leaving it PageUptodate if it already is?  Then
> > cifs_write_end() only has to handle the slow path when the page is
> > neither PageUptodate or PageChecked.
> > 
> > PageChecked == PG_owner_priv_1, which is reserved for whatever the
> > filesystem wants to use it for.
> > 
> 
> Right -- Nick's point about the uptodate flag was definitely correct,
> though I'm not sure I understand when we'd get less data eventually
> copied to the page than we expected in write_begin...
> 
> I had the same thought last night about using a different flag. I was
> considering PG_private, but PG_checked sounds like a better choice.
> Thoughts on this patch? I've run some basic regression tests against
> it and it seems to work.

Just took a real quick look, but I have one comment.  I'd leave the page
alone if it's already PageUptodate.  I wouldn't bother setting
PageChecked and let cifs_write_end leave it alone when its already
uptodate.
-- 
David Kleikamp
IBM Linux Technology Center



More information about the linux-cifs-client mailing list