On Wed, Sep 09, 2009 at 09:37:29AM -0400, Chris Mason wrote:
> On Wed, Sep 09, 2009 at 03:34:35PM +0200, Nick Piggin wrote:
> > Which cases do set_page_dirty happen without page_mkwrite? For fsx-linux
> > I hope there shouldn't be any...
> 
> I've been assuming its the zap_pte_range part, but now I have enough
> code around it to make stack traces.

OK, because AFAIK we're _supposed_ to be able to close all that
up since the last round of page_mkwrite fixes here, so pte state
will not be out of state with page state.

Yes set_page_dirty still gets called there, for fses without
page_mkwrite or which don't try hard to keep in sync. But if you
return with the page locked from page_mkwrite, this set_page_diryt
call should always find the page dirty (I hope).


> > but one issue with btrfs's page_mkwrite
> > is that it still unlocks the page before page_mkwrite returns so if it
> > is anything like other filesystems, the page might get written out
> > between the page_mkwrite and the page fault's subsequent set_page_dirty.
> > 
> > So if that race is hitting, it might appear like set_page_dirty is
> > being called without a page_mkwrite.
> 
> Good point, I'll make sure.

Though if it has exposed a bug, that's a good thing too; you still
want to handle that case (for now) due to the get_uesr_pages problem.

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to