cgroup: add missing skcd->no_refcnt check in cgroup_sk_clone()
authorYang Yingliang <yangyingliang@huawei.com>
Thu, 13 Aug 2020 20:27:57 +0000 (20:27 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 21 Aug 2020 09:01:56 +0000 (11:01 +0200)
Add skcd->no_refcnt check which is missed when backporting
ad0f75e5f57c ("cgroup: fix cgroup_sk_alloc() for sk_clone_lock()").

This patch is needed in stable-4.9, stable-4.14 and stable-4.19.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/cgroup.c

index f047c73189f36bc8910970a94ea8d0aabfac6adb..684d02f343b4cf731e4d9d21ed7f7916c91d8b2e 100644 (file)
@@ -6355,6 +6355,8 @@ void cgroup_sk_clone(struct sock_cgroup_data *skcd)
 {
        /* Socket clone path */
        if (skcd->val) {
+               if (skcd->no_refcnt)
+                       return;
                /*
                 * We might be cloning a socket which is left in an empty
                 * cgroup and the cgroup might have already been rmdir'd.