From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx156.postini.com [74.125.245.156]) by kanga.kvack.org (Postfix) with SMTP id B40826B0105 for ; Thu, 23 Feb 2012 08:53:22 -0500 (EST) Received: by mail-bk0-f41.google.com with SMTP id y12so1365307bkt.14 for ; Thu, 23 Feb 2012 05:53:22 -0800 (PST) Subject: [PATCH v3 19/21] memcg: check lru vectors emptiness in pre-destroy From: Konstantin Khlebnikov Date: Thu, 23 Feb 2012 17:53:19 +0400 Message-ID: <20120223135319.12988.73209.stgit@zurg> In-Reply-To: <20120223133728.12988.5432.stgit@zurg> References: <20120223133728.12988.5432.stgit@zurg> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org List-ID: To: Hugh Dickins , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Johannes Weiner , Andrew Morton , KAMEZAWA Hiroyuki Cc: Andi Kleen We must abort cgroup destroying if it still not empty, resource counter cannot catch isolated uncharged pages. Signed-off-by: Konstantin Khlebnikov --- mm/memcontrol.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 4de8044..fbeff85 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -4859,8 +4859,16 @@ free_out: static int mem_cgroup_pre_destroy(struct cgroup *cont) { struct mem_cgroup *memcg = mem_cgroup_from_cont(cont); + int ret; + + ret = mem_cgroup_force_empty(memcg, false); + if (ret) + return ret; - return mem_cgroup_force_empty(memcg, false); + if (mem_cgroup_nr_lru_pages(memcg, -1)) + return -EBUSY; + + return 0; } static void mem_cgroup_destroy(struct cgroup *cont) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: email@kvack.org