From 09efe93ddcd52808ace23ceaea7477097fb4b6e6 Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Fri, 28 Mar 2003 03:18:47 -0800 Subject: [PATCH] [PATCH] permit page unmapping if !CONFIG_SWAP From: Hugh Dickins Raised #endif CONFIG_SWAP in shrink_list, it was excluding try_to_unmap of file pages. Suspect !CONFIG_MMU relied on that to suppress try_to_unmap, added SWAP_FAIL stub for it. --- include/linux/swap.h | 15 +++++++-------- mm/vmscan.c | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/include/linux/swap.h b/include/linux/swap.h index ab76302894fda..a2a294961dca1 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -178,19 +178,18 @@ struct pte_chain *FASTCALL(page_add_rmap(struct page *, pte_t *, void FASTCALL(page_remove_rmap(struct page *, pte_t *)); int FASTCALL(try_to_unmap(struct page *)); -/* return values of try_to_unmap */ -#define SWAP_SUCCESS 0 -#define SWAP_AGAIN 1 -#define SWAP_FAIL 2 - /* linux/mm/shmem.c */ extern int shmem_unuse(swp_entry_t entry, struct page *page); - #else -#define page_referenced(page) \ - TestClearPageReferenced(page) +#define page_referenced(page) TestClearPageReferenced(page) +#define try_to_unmap(page) SWAP_FAIL #endif /* CONFIG_MMU */ +/* return values of try_to_unmap */ +#define SWAP_SUCCESS 0 +#define SWAP_AGAIN 1 +#define SWAP_FAIL 2 + #ifdef CONFIG_SWAP /* linux/mm/page_io.c */ extern int swap_readpage(struct file *, struct page *); diff --git a/mm/vmscan.c b/mm/vmscan.c index 914711c81f05f..407920e2831b2 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -277,6 +277,7 @@ shrink_list(struct list_head *page_list, unsigned int gfp_mask, pte_chain_lock(page); mapping = page->mapping; } +#endif /* CONFIG_SWAP */ /* * The page is mapped into the page tables of one or more @@ -294,7 +295,6 @@ shrink_list(struct list_head *page_list, unsigned int gfp_mask, ; /* try to free the page below */ } } -#endif /* CONFIG_SWAP */ pte_chain_unlock(page); /* -- 2.53.0