Messages in this thread | | | Date | Wed, 31 May 2006 16:09:06 +0100 (BST) | From | Hugh Dickins <> | Subject | Re: [rfc][patch] remove racy sync_page? |
| |
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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |