On Sat, 2008-11-22 at 10:39 -0500, Jeff Layton wrote: > On Fri, 21 Nov 2008 22:47:09 -0600 > Dave Kleikamp <shaggy@xxxxxxxxxxxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html