Re: [rfc][patch] remove racy sync_page?

Hugh Dickins
2006-05-31T15:09:06Z

On Wed, 31 May 2006, Nick Piggin wrote:
> Jens Axboe wrote:
> >
> > Maybe I'm being dense, but I don't see a problem there. You _should_
> > call the new mapping sync page if it has been migrated.
>
> But can some other thread calling lock_page first find the old mapping,
> and then run its ->sync_page which finds the new mapping? While it may
> not matter for anyone in-tree, it does break the API so it would be
> better to either fix it or rip it out than be silently buggy.

Splicing a page from one mapping to another is rather worrying/exciting,
but it does look safely done to me. remove_mapping checks page_count
while page lock and old mapping->tree_lock are held, and gives up if
anyone else has an interest in the page. And we already know it's
unsafe to lock_page without holding a reference to the page, don't we?

Hugh