Commit 09efe93d authored by Andrew Morton's avatar Andrew Morton Committed by Dave Jones

[PATCH] permit page unmapping if !CONFIG_SWAP

From: Hugh Dickins <hugh@veritas.com>

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.
parent 255373b8
...@@ -178,19 +178,18 @@ struct pte_chain *FASTCALL(page_add_rmap(struct page *, pte_t *, ...@@ -178,19 +178,18 @@ struct pte_chain *FASTCALL(page_add_rmap(struct page *, pte_t *,
void FASTCALL(page_remove_rmap(struct page *, pte_t *)); void FASTCALL(page_remove_rmap(struct page *, pte_t *));
int FASTCALL(try_to_unmap(struct page *)); 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 */ /* linux/mm/shmem.c */
extern int shmem_unuse(swp_entry_t entry, struct page *page); extern int shmem_unuse(swp_entry_t entry, struct page *page);
#else #else
#define page_referenced(page) \ #define page_referenced(page) TestClearPageReferenced(page)
TestClearPageReferenced(page) #define try_to_unmap(page) SWAP_FAIL
#endif /* CONFIG_MMU */ #endif /* CONFIG_MMU */
/* return values of try_to_unmap */
#define SWAP_SUCCESS 0
#define SWAP_AGAIN 1
#define SWAP_FAIL 2
#ifdef CONFIG_SWAP #ifdef CONFIG_SWAP
/* linux/mm/page_io.c */ /* linux/mm/page_io.c */
extern int swap_readpage(struct file *, struct page *); extern int swap_readpage(struct file *, struct page *);
......
...@@ -277,6 +277,7 @@ shrink_list(struct list_head *page_list, unsigned int gfp_mask, ...@@ -277,6 +277,7 @@ shrink_list(struct list_head *page_list, unsigned int gfp_mask,
pte_chain_lock(page); pte_chain_lock(page);
mapping = page->mapping; mapping = page->mapping;
} }
#endif /* CONFIG_SWAP */
/* /*
* The page is mapped into the page tables of one or more * 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, ...@@ -294,7 +295,6 @@ shrink_list(struct list_head *page_list, unsigned int gfp_mask,
; /* try to free the page below */ ; /* try to free the page below */
} }
} }
#endif /* CONFIG_SWAP */
pte_chain_unlock(page); pte_chain_unlock(page);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment