aboutsummaryrefslogtreecommitdiffstats
path: root/mm/swapfile.c
diff options
context:
space:
mode:
authorHugh Dickins <hugh.dickins@tiscali.co.uk>2010-03-05 16:42:25 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-06 14:26:27 -0500
commit08259d58e4fa12ceaece82193c5816152f638cca (patch)
tree8c032914139c5aec362a73b8316cf81f020f9f8f /mm/swapfile.c
parentc08c6e1f54c85fc299cf9f88cf330d6dd28a9a1d (diff)
mm: add comment on swap_duplicate's error code
swap_duplicate()'s loop appears to miss out on returning the error code from __swap_duplicate(), except when that's -ENOMEM. In fact this is intentional: prior to -ENOMEM for swap_count_continuation, swap_duplicate() was void (and the case only occurs when copy_one_pte() hits a corrupt pte). But that's surprising behaviour, which certainly deserves a comment. Signed-off-by: Hugh Dickins <hughd@google.com> Reported-by: Huang Shijie <shijie8@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r--mm/swapfile.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 4a986127f15e..84374d8cf814 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -2161,7 +2161,11 @@ void swap_shmem_alloc(swp_entry_t entry)
2161} 2161}
2162 2162
2163/* 2163/*
2164 * increase reference count of swap entry by 1. 2164 * Increase reference count of swap entry by 1.
2165 * Returns 0 for success, or -ENOMEM if a swap_count_continuation is required
2166 * but could not be atomically allocated. Returns 0, just as if it succeeded,
2167 * if __swap_duplicate() fails for another reason (-EINVAL or -ENOENT), which
2168 * might occur if a page table entry has got corrupted.
2165 */ 2169 */
2166int swap_duplicate(swp_entry_t entry) 2170int swap_duplicate(swp_entry_t entry)
2167{ 2171{