From: Huang Ying <[email protected]>

In swapcache_free_entries(), if swap_info_get_cont() return NULL,
something wrong occurs for the swap entry.  But we should still
continue to free the following swap entries in the array instead of
skip them to avoid swap space leak.  This is just problem in error
path, where system may be in an inconsistent state, but it is still
good to fix it.

Signed-off-by: "Huang, Ying" <[email protected]>
Cc: Tim Chen <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: Shaohua Li <[email protected]>
Cc: Minchan Kim <[email protected]>
---
 mm/swapfile.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/mm/swapfile.c b/mm/swapfile.c
index 178130880b90..71890061f653 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -1079,8 +1079,6 @@ void swapcache_free_entries(swp_entry_t *entries, int n)
                p = swap_info_get_cont(entries[i], prev);
                if (p)
                        swap_entry_free(p, entries[i]);
-               else
-                       break;
                prev = p;
        }
        if (p)
-- 
2.11.0

Reply via email to