diff options
author | Hua Zhong | 2006-05-15 18:44:22 +0200 |
---|---|---|
committer | Linus Torvalds | 2006-05-15 20:20:56 +0200 |
commit | e6333fd4ddf7a583480017f535b9ea53c116ab81 (patch) | |
tree | df1aeae28ce51103a0c9eda8f7d40e463297b2ef | |
parent | [PATCH] v9fs: signal handling fixes (diff) | |
download | kernel-qcow2-linux-e6333fd4ddf7a583480017f535b9ea53c116ab81.tar.gz kernel-qcow2-linux-e6333fd4ddf7a583480017f535b9ea53c116ab81.tar.xz kernel-qcow2-linux-e6333fd4ddf7a583480017f535b9ea53c116ab81.zip |
[PATCH] fix can_share_swap_page() when !CONFIG_SWAP
can_share_swap_page() is used to check if the page has the last reference.
This avoids allocating a new page for COW if it's the last page.
However, if CONFIG_SWAP is not set, can_share_swap_page() is defined as 0,
thus always causes a copy for the last COW page. The below simple patch
fixes it.
Signed-off-by: Hua Zhong <hzhong@gmail.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-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 5b1fdf1cff4f..f03c24719302 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -296,7 +296,7 @@ static inline void disable_swap_token(void) #define read_swap_cache_async(swp,vma,addr) NULL #define lookup_swap_cache(swp) NULL #define valid_swaphandles(swp, off) 0 -#define can_share_swap_page(p) 0 +#define can_share_swap_page(p) (page_mapcount(p) == 1) #define move_to_swap_cache(p, swp) 1 #define move_from_swap_cache(p, i, m) 1 #define __delete_from_swap_cache(p) /*NOTHING*/ |