diff --git a/[refs] b/[refs] index 53180d46714f..f29e512f13fc 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7ffc0edc49d0df5dac077c1830e2533b27d3a4ed +refs/heads/master: ec4d9f626d5908b6052c2973f37992f1db52e967 diff --git a/trunk/mm/truncate.c b/trunk/mm/truncate.c index 75801acdaac7..f38055cb8af6 100644 --- a/trunk/mm/truncate.c +++ b/trunk/mm/truncate.c @@ -394,11 +394,12 @@ invalidate_complete_page2(struct address_space *mapping, struct page *page) if (page_has_private(page) && !try_to_release_page(page, GFP_KERNEL)) return 0; + clear_page_mlock(page); + spin_lock_irq(&mapping->tree_lock); if (PageDirty(page)) goto failed; - clear_page_mlock(page); BUG_ON(page_has_private(page)); __delete_from_page_cache(page); spin_unlock_irq(&mapping->tree_lock);