[ v3: fix bug with failed initialization, seen by Tejun ] Hi Tejun, Let me know if the following is acceptable. Turns out the only operation with a side effect we do after the last failure spot, is a get on the parent memcg, and the setup of our very own refcnt. Both of them can be dealt with a mem_cgroup_put in the beginning of the failure path. So I felt no need for any code reordering. People from the memcg side, please verify if this is indeed okay. I actually tested it with some test code to force memcg_kmem_init() to fail, and it seems to go all right. I'll be happy to address any other problems you spot. Glauber Costa (2): cgroup: pass struct mem_cgroup instead of struct cgroup to socket memcg cgroup: get rid of populate for memcg include/net/sock.h | 12 ++++++------ include/net/tcp_memcontrol.h | 4 ++-- mm/memcontrol.c | 39 ++++++++++++++++++--------------------- net/core/sock.c | 10 +++++----- net/ipv4/tcp_memcontrol.c | 6 ++---- 5 files changed, 33 insertions(+), 38 deletions(-) -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html