X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Ffilemap.c;h=239d36163bbe53fbb2115595e82ed9aef3180b02;hb=9781db7b345b5dfe93787aaaf310c861db7c1ede;hp=07e9d9258b486f804a2af0b98972104f2d63bd89;hpb=7682486b3ee06f800d5b11033371c7c5e92e3057;p=linux-2.6 diff --git a/mm/filemap.c b/mm/filemap.c index 07e9d9258b..239d36163b 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -576,10 +576,12 @@ EXPORT_SYMBOL(unlock_page); */ void end_page_writeback(struct page *page) { - if (!TestClearPageReclaim(page) || rotate_reclaimable_page(page)) { - if (!test_clear_page_writeback(page)) - BUG(); - } + if (TestClearPageReclaim(page)) + rotate_reclaimable_page(page); + + if (!test_clear_page_writeback(page)) + BUG(); + smp_mb__after_clear_bit(); wake_up_page(page, PG_writeback); }