diff options
Diffstat (limited to 'mm/filemap.c')
-rw-r--r-- | mm/filemap.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/mm/filemap.c b/mm/filemap.c index 07e9d9258b48..239d36163bbe 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -576,10 +576,12 @@ EXPORT_SYMBOL(unlock_page); | |||
576 | */ | 576 | */ |
577 | void end_page_writeback(struct page *page) | 577 | void end_page_writeback(struct page *page) |
578 | { | 578 | { |
579 | if (!TestClearPageReclaim(page) || rotate_reclaimable_page(page)) { | 579 | if (TestClearPageReclaim(page)) |
580 | if (!test_clear_page_writeback(page)) | 580 | rotate_reclaimable_page(page); |
581 | BUG(); | 581 | |
582 | } | 582 | if (!test_clear_page_writeback(page)) |
583 | BUG(); | ||
584 | |||
583 | smp_mb__after_clear_bit(); | 585 | smp_mb__after_clear_bit(); |
584 | wake_up_page(page, PG_writeback); | 586 | wake_up_page(page, PG_writeback); |
585 | } | 587 | } |