Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[PATCH] fix race in pagevec_strip?

We can call try_to_release_page() with PagePrivate off and a valid
page->mapping This may cause all sorts of trouble for the filesystem
*_releasepage() handlers. XFS bombs out in that case.

Lock the page before checking for page private.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Christoph Lameter and committed by
Linus Torvalds
5b40dc78 8ba32fde

+2 -1
+2 -1
mm/swap.c
··· 393 393 struct page *page = pvec->pages[i]; 394 394 395 395 if (PagePrivate(page) && !TestSetPageLocked(page)) { 396 - try_to_release_page(page, 0); 396 + if (PagePrivate(page)) 397 + try_to_release_page(page, 0); 397 398 unlock_page(page); 398 399 } 399 400 }