[PATCHv4 09/11] memcg: Use *_dec_not_zero instead of *_add_unless

Sven Eckelmann
2011-07-27T09:55:49Z

atomic_dec_not_zero is defined for each architecture through
<linux/atomic.h> to provide the functionality of
atomic_add_unless(x, -1, 0).

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: linux-mm@kvack.org
---
mm/memcontrol.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 5f84d23..00a7580 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1909,10 +1909,10 @@ static void mem_cgroup_unmark_under_oom(struct mem_cgroup *mem)
/*
* When a new child is created while the hierarchy is under oom,
* mem_cgroup_oom_lock() may not be called. We have to use
- * atomic_add_unless() here.
+ * atomic_dec_not_zero() here.
*/
for_each_mem_cgroup_tree(iter, mem)
- atomic_add_unless(&iter->under_oom, -1, 0);
+ atomic_dec_not_zero(&iter->under_oom);
}

static DEFINE_SPINLOCK(memcg_oom_lock);
--
1.7.5.4