diff options
-rw-r--r-- | mm/memcontrol.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index bdeb82ca6c20..4c31a21a55be 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -551,15 +551,15 @@ void sock_update_memcg(struct sock *sk) | |||
551 | */ | 551 | */ |
552 | if (sk->sk_cgrp) { | 552 | if (sk->sk_cgrp) { |
553 | BUG_ON(mem_cgroup_is_root(sk->sk_cgrp->memcg)); | 553 | BUG_ON(mem_cgroup_is_root(sk->sk_cgrp->memcg)); |
554 | mem_cgroup_get(sk->sk_cgrp->memcg); | 554 | css_get(&sk->sk_cgrp->memcg->css); |
555 | return; | 555 | return; |
556 | } | 556 | } |
557 | 557 | ||
558 | rcu_read_lock(); | 558 | rcu_read_lock(); |
559 | memcg = mem_cgroup_from_task(current); | 559 | memcg = mem_cgroup_from_task(current); |
560 | cg_proto = sk->sk_prot->proto_cgroup(memcg); | 560 | cg_proto = sk->sk_prot->proto_cgroup(memcg); |
561 | if (!mem_cgroup_is_root(memcg) && memcg_proto_active(cg_proto)) { | 561 | if (!mem_cgroup_is_root(memcg) && |
562 | mem_cgroup_get(memcg); | 562 | memcg_proto_active(cg_proto) && css_tryget(&memcg->css)) { |
563 | sk->sk_cgrp = cg_proto; | 563 | sk->sk_cgrp = cg_proto; |
564 | } | 564 | } |
565 | rcu_read_unlock(); | 565 | rcu_read_unlock(); |
@@ -573,7 +573,7 @@ void sock_release_memcg(struct sock *sk) | |||
573 | struct mem_cgroup *memcg; | 573 | struct mem_cgroup *memcg; |
574 | WARN_ON(!sk->sk_cgrp->memcg); | 574 | WARN_ON(!sk->sk_cgrp->memcg); |
575 | memcg = sk->sk_cgrp->memcg; | 575 | memcg = sk->sk_cgrp->memcg; |
576 | mem_cgroup_put(memcg); | 576 | css_put(&sk->sk_cgrp->memcg->css); |
577 | } | 577 | } |
578 | } | 578 | } |
579 | 579 | ||