diff options
author | Christoph Lameter <clameter@sgi.com> | 2006-01-08 04:00:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-08 23:12:42 -0500 |
commit | 1480a540c98525640174a7eadd712378fcd6fd63 (patch) | |
tree | 28f2cc0aa819ff0aed30dd85bb16177d4a73002b /include/linux/swap.h | |
parent | 8419c3181086c86664e8246bc997afc2e4ffba4f (diff) |
[PATCH] SwapMig: add_to_swap() avoid atomic allocations
Add gfp_mask to add_to_swap
add_to_swap does allocations with GFP_ATOMIC in order not to interfere with
swapping. During migration we may have use add_to_swap extensively which may
lead to out of memory errors.
This patch makes add_to_swap take a parameter that specifies the gfp mask.
The page migration code can then make add_to_swap use GFP_KERNEL.
Signed-off-by: Hirokazu Takahashi <taka@valinux.co.jp>
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/swap.h')
-rw-r--r-- | include/linux/swap.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/swap.h b/include/linux/swap.h index 997d838f0e70..eb591eaad1b7 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -198,7 +198,7 @@ extern int rw_swap_page_sync(int, swp_entry_t, struct page *); | |||
198 | extern struct address_space swapper_space; | 198 | extern struct address_space swapper_space; |
199 | #define total_swapcache_pages swapper_space.nrpages | 199 | #define total_swapcache_pages swapper_space.nrpages |
200 | extern void show_swap_cache_info(void); | 200 | extern void show_swap_cache_info(void); |
201 | extern int add_to_swap(struct page *); | 201 | extern int add_to_swap(struct page *, gfp_t); |
202 | extern void __delete_from_swap_cache(struct page *); | 202 | extern void __delete_from_swap_cache(struct page *); |
203 | extern void delete_from_swap_cache(struct page *); | 203 | extern void delete_from_swap_cache(struct page *); |
204 | extern int move_to_swap_cache(struct page *, swp_entry_t); | 204 | extern int move_to_swap_cache(struct page *, swp_entry_t); |