diff --git a/homa_rpc.c b/homa_rpc.c index 7804577e..100e5fa0 100644 --- a/homa_rpc.c +++ b/homa_rpc.c @@ -117,6 +117,7 @@ struct homa_rpc *homa_rpc_alloc_server(struct homa_sock *hsk, u64 id = homa_local_id(h->sender_id); struct homa_rpc_bucket *bucket; struct homa_rpc *srpc = NULL; + struct mem_cgroup *memcg; int msg_length; int err; @@ -140,8 +141,9 @@ struct homa_rpc *homa_rpc_alloc_server(struct homa_sock *hsk, } /* Initialize fields that don't require the socket lock. */ - if (hsk->sock.sk_memcg) { - struct mem_cgroup *old = set_active_memcg(hsk->sock.sk_memcg); + memcg = mem_cgroup_from_sk(&hsk->sock); + if (memcg) { + struct mem_cgroup *old = set_active_memcg(memcg); srpc = kzalloc(sizeof(*srpc), GFP_ATOMIC | __GFP_ACCOUNT); set_active_memcg(old);