summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Piggin <npiggin@suse.de>2007-07-15 23:38:12 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 09:05:35 -0700
commit45426812d6b601430d560cb6049757b5b0bc71c4 (patch)
tree64c8439a53f4ca402a9d7deb2a455aa0de08c8ea
parentf96efd585b8d847181f81bf16721f96ded18d9fe (diff)
downloadlinux-3.10-45426812d6b601430d560cb6049757b5b0bc71c4.tar.gz
linux-3.10-45426812d6b601430d560cb6049757b5b0bc71c4.tar.bz2
linux-3.10-45426812d6b601430d560cb6049757b5b0bc71c4.zip
mm: debug check for the fault vs invalidate race
Add a bugcheck for Andrea's pagefault vs invalidate race. This is triggerable for both linear and nonlinear pages with a userspace test harness (using direct IO and truncate, respectively). Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/filemap.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/filemap.c b/mm/filemap.c
index c6ebd9f912a..e006c57bda5 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -120,6 +120,7 @@ void __remove_from_page_cache(struct page *page)
page->mapping = NULL;
mapping->nrpages--;
__dec_zone_page_state(page, NR_FILE_PAGES);
+ BUG_ON(page_mapped(page));
}
void remove_from_page_cache(struct page *page)