From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756268Ab2BWNxf (ORCPT ); Thu, 23 Feb 2012 08:53:35 -0500 Received: from mail-bk0-f46.google.com ([209.85.214.46]:39147 "EHLO mail-bk0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756215Ab2BWNxW (ORCPT ); Thu, 23 Feb 2012 08:53:22 -0500 Authentication-Results: mr.google.com; spf=pass (google.com: domain of koct9i@gmail.com designates 10.204.129.8 as permitted sender) smtp.mail=koct9i@gmail.com; dkim=pass header.i=koct9i@gmail.com Subject: [PATCH v3 19/21] memcg: check lru vectors emptiness in pre-destroy To: Hugh Dickins , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Johannes Weiner , Andrew Morton , KAMEZAWA Hiroyuki From: Konstantin Khlebnikov Cc: Andi Kleen 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> User-Agent: StGit/0.15 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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)