We must abort cgroup destroying if it still not empty, resource counter cannot catch isolated uncharged pages. Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxx> --- 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@xxxxxxxxx. 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: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>