forked from Minki/linux
[PATCH] swapoff: use atomic_inc_not_zero() on mm_users
Now that we have atomic_inc_not_zero, it's more elegant for try_to_unuse to use that on mm_users: doesn't actually matter at present, but safer to be sure that once mm_users has gone to 0, nothing raises it for an instant. Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
9637a5efd4
commit
70af7c5c64
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user