From: Nick Piggin Date: Wed, 22 Mar 2006 08:08:03 +0000 (-0800) Subject: [PATCH] mm: simplify vmscan vs release refcounting X-Git-Tag: v2.6.17-rc1~1129^2~79 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c8ee9a86340db686cd4314e9944dc9b6111bda9;p=pandora-kernel.git [PATCH] mm: simplify vmscan vs release refcounting The VM has an interesting race where a page refcount can drop to zero, but it is still on the LRU lists for a short time. This was solved by testing a 0->1 refcount transition when picking up pages from the LRU, and dropping the refcount in that case. Instead, use atomic_add_unless to ensure we never pick up a 0 refcount page from the LRU, thus a 0 refcount page will never have its refcount elevated until it is allocated again. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed