|
@@ -262,27 +262,6 @@ unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-/* Called without lock on whether page is mapped, so answer is unstable */
|
|
|
-static inline int page_mapping_inuse(struct page *page)
|
|
|
-{
|
|
|
- struct address_space *mapping;
|
|
|
-
|
|
|
- /* Page is in somebody's page tables. */
|
|
|
- if (page_mapped(page))
|
|
|
- return 1;
|
|
|
-
|
|
|
- /* Be more reluctant to reclaim swapcache than pagecache */
|
|
|
- if (PageSwapCache(page))
|
|
|
- return 1;
|
|
|
-
|
|
|
- mapping = page_mapping(page);
|
|
|
- if (!mapping)
|
|
|
- return 0;
|
|
|
-
|
|
|
- /* File is mmap'd by somebody? */
|
|
|
- return mapping_mapped(mapping);
|
|
|
-}
|
|
|
-
|
|
|
static inline int is_page_cache_freeable(struct page *page)
|
|
|
{
|
|
|
/*
|
|
@@ -606,7 +585,7 @@ static enum page_references page_check_references(struct page *page,
|
|
|
if (vm_flags & VM_LOCKED)
|
|
|
return PAGEREF_RECLAIM;
|
|
|
|
|
|
- if (page_mapping_inuse(page))
|
|
|
+ if (page_mapped(page))
|
|
|
return PAGEREF_ACTIVATE;
|
|
|
|
|
|
/* Reclaim if clean, defer dirty pages to writeback */
|
|
@@ -1381,7 +1360,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
|
|
|
}
|
|
|
|
|
|
/* page_referenced clears PageReferenced */
|
|
|
- if (page_mapping_inuse(page) &&
|
|
|
+ if (page_mapped(page) &&
|
|
|
page_referenced(page, 0, sc->mem_cgroup, &vm_flags)) {
|
|
|
nr_rotated++;
|
|
|
/*
|