- set the number of pages to be written to "1". - Don't test PG_writeback twice. mm/page-writeback.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN mm/page-writeback.c~write_one_page-cleanup mm/page-writeback.c --- 25/mm/page-writeback.c~write_one_page-cleanup 2003-05-28 19:00:54.000000000 -0700 +++ 25-akpm/mm/page-writeback.c 2003-05-28 19:00:54.000000000 -0700 @@ -430,11 +430,12 @@ int write_one_page(struct page *page, in int ret = 0; struct writeback_control wbc = { .sync_mode = WB_SYNC_ALL, + .nr_to_write = 1, }; BUG_ON(!PageLocked(page)); - if (wait && PageWriteback(page)) + if (wait) wait_on_page_writeback(page); spin_lock(&mapping->page_lock); _