I do not believe so -- though we could well be talking about
different race conditions. The one that I am worried about
is where a distributed filesystem has a page fault against an
mmap race against an invalidation request. The thought is
that the DFS takes one of its locks in the nopage callback,
and then releases it in the revalidate callback. The
invalidation request would use the same DFS lock, and would
therefore not be able to run between nopage and revalidate.
It would call something like invalidate_mmap_range(), which
in turn calls zap_page_range(), which acquires the
mm->page_table_lock. Since do_no_page() does not release
mm->page_table_lock until after it fills in the PTE, I believe
things are covered.
So, is there another race that I am missing here? ;-)
Thanx, Paul
-
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/