From: Hugh Dickins Date: Fri, 5 Mar 2010 21:42:25 +0000 (-0800) Subject: mm: add comment on swap_duplicate's error code X-Git-Tag: Ubuntu-5.2.0-15.16~26023 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=08259d58e4fa12ceaece82193c5816152f638cca;p=mirror_ubuntu-eoan-kernel.git 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 Reported-by: Huang Shijie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- 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) } /* - * increase reference count of swap entry by 1. + * Increase reference count of swap entry by 1. + * Returns 0 for success, or -ENOMEM if a swap_count_continuation is required + * but could not be atomically allocated. Returns 0, just as if it succeeded, + * if __swap_duplicate() fails for another reason (-EINVAL or -ENOENT), which + * might occur if a page table entry has got corrupted. */ int swap_duplicate(swp_entry_t entry) {