]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - mm/rmap.c
FRV: Provide ioremap_wc() for FRV
[linux-2.6-omap-h63xx.git] / mm / rmap.c
index 99bc3f9cd796f34a58ec1d61798c27c583a0eaf3..1ea4e6fcee77986f673d578a42bece82a92fb81e 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -422,7 +422,7 @@ int page_referenced(struct page *page, int is_locked,
                        referenced += page_referenced_anon(page, mem_cont);
                else if (is_locked)
                        referenced += page_referenced_file(page, mem_cont);
-               else if (TestSetPageLocked(page))
+               else if (!trylock_page(page))
                        referenced++;
                else {
                        if (page->mapping)
@@ -667,7 +667,8 @@ void page_remove_rmap(struct page *page, struct vm_area_struct *vma)
                 * Leaving it set also helps swapoff to reinstate ptes
                 * faster for those pages still in swapcache.
                 */
-               if (page_test_dirty(page)) {
+               if ((!PageAnon(page) || PageSwapCache(page)) &&
+                   page_test_dirty(page)) {
                        page_clear_dirty(page);
                        set_page_dirty(page);
                }