From d59b76ca923074f9d20c00d5688f792e8e4b6a1d Mon Sep 17 00:00:00 2001 From: Hugh Dickins Date: Fri, 23 Jun 2006 02:03:44 -0700 Subject: [PATCH] --- yaml --- r: 28938 b: refs/heads/master c: 70af7c5c6492ef6ad137dbff6c4568c73edbcaf0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/swapfile.c | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 28294decb5f3..7247aa65820c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9637a5efd4fbe36164c5ce7f6a0ee68b2bf22b7f +refs/heads/master: 70af7c5c6492ef6ad137dbff6c4568c73edbcaf0 diff --git a/trunk/mm/swapfile.c b/trunk/mm/swapfile.c index fbceed67a075..f2824c3c31b4 100644 --- a/trunk/mm/swapfile.c +++ b/trunk/mm/swapfile.c @@ -772,10 +772,8 @@ static int try_to_unuse(unsigned int type) while (*swap_map > 1 && !retval && (p = p->next) != &start_mm->mmlist) { mm = list_entry(p, struct mm_struct, mmlist); - if (atomic_inc_return(&mm->mm_users) == 1) { - atomic_dec(&mm->mm_users); + if (!atomic_inc_not_zero(&mm->mm_users)) continue; - } spin_unlock(&mmlist_lock); mmput(prev_mm); prev_mm = mm;