Messages in this thread Patch in this message | | | Date | Sun, 27 Jan 2013 13:47:01 -0800 (PST) | From | Hugh Dickins <> | Subject | [PATCH next/mmotm] swap: add per-partition lock for swapfile fix |
| |
I had all cpus spinning in swap_info_get(), for the lock on an area being swapped off: probably because get_swap_page() forgot to unlock.
Signed-off-by: Hugh Dickins <hughd@google.com> ---
mm/swapfile.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
--- mmotm.orig/mm/swapfile.c 2013-01-23 17:55:39.132447115 -0800 +++ mmotm/mm/swapfile.c 2013-01-27 10:41:45.000000000 -0800 @@ -470,10 +470,9 @@ swp_entry_t get_swap_page(void) spin_unlock(&swap_lock); /* This is called for allocating swap entry for cache */ offset = scan_swap_map(si, SWAP_HAS_CACHE); - if (offset) { - spin_unlock(&si->lock); + spin_unlock(&si->lock); + if (offset) return swp_entry(type, offset); - } spin_lock(&swap_lock); next = swap_list.next; }
| |