From: Andrew Morton Cc: Peter Zijlstra Cc: Nick Piggin Cc: Hugh Dickins Cc: Christoph Lameter Signed-off-by: Andrew Morton --- mm/page-writeback.c | 4 ++++ 1 files changed, 4 insertions(+) diff -puN mm/page-writeback.c~tracking-dirty-pages-in-shared-mappings-v4-fix2 mm/page-writeback.c --- devel/mm/page-writeback.c~tracking-dirty-pages-in-shared-mappings-v4-fix2 2006-05-11 08:15:30.000000000 -0700 +++ devel-akpm/mm/page-writeback.c 2006-05-11 08:15:30.000000000 -0700 @@ -726,6 +726,10 @@ int test_clear_page_dirty(struct page *p page_index(page), PAGECACHE_TAG_DIRTY); write_unlock_irqrestore(&mapping->tree_lock, flags); + /* + * We can continue to use `mapping' here because the + * page is locked, which pins the address_space + */ if (mapping_cap_account_dirty(mapping)) { page_wrprotect(page); dec_page_state(nr_dirty); _