From nobody Thu May 14 09:27:19 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4FE15C433F5 for ; Fri, 8 Apr 2022 10:24:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231987AbiDHK0c (ORCPT ); Fri, 8 Apr 2022 06:26:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60068 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229649AbiDHK03 (ORCPT ); Fri, 8 Apr 2022 06:26:29 -0400 Received: from SHSQR01.spreadtrum.com (unknown [222.66.158.135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4B41422EB07; Fri, 8 Apr 2022 03:24:16 -0700 (PDT) Received: from SHSend.spreadtrum.com (bjmbx01.spreadtrum.com [10.0.64.7]) by SHSQR01.spreadtrum.com with ESMTPS id 238ANXnU038992 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NO); Fri, 8 Apr 2022 18:23:33 +0800 (CST) (envelope-from zhaoyang.huang@unisoc.com) Received: from bj03382pcu.spreadtrum.com (10.0.74.65) by BJMBX01.spreadtrum.com (10.0.64.7) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Fri, 8 Apr 2022 18:23:34 +0800 From: "zhaoyang.huang" To: Tejun Heo , Zefan Li , Johannes Weiner , Zhaoyang Huang , , , Subject: [PATCH] cgroup: fix attach task fail when subtree_control configured Date: Fri, 8 Apr 2022 18:23:14 +0800 Message-ID: <1649413394-17501-1-git-send-email-zhaoyang.huang@unisoc.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-Originating-IP: [10.0.74.65] X-ClientProxiedBy: SHCAS03.spreadtrum.com (10.0.1.207) To BJMBX01.spreadtrum.com (10.0.64.7) X-MAIL: SHSQR01.spreadtrum.com 238ANXnU038992 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zhaoyang Huang It is found that task attach to a vacant cgroup will fail when its subtree_control has been configured. Fix it by judging if there is no chril= dren existed. Signed-off-by: Zhaoyang Huang --- kernel/cgroup/cgroup.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 919194d..f00583b 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -2561,6 +2561,9 @@ static int cgroup_migrate_execute(struct cgroup_mgctx= *mgctx) */ int cgroup_migrate_vet_dst(struct cgroup *dst_cgrp) { + struct cgroup_subsys_state *css =3D &dst_cgrp->self; + struct list_head *children =3D &css->children; + /* v1 doesn't have any restriction */ if (!cgroup_on_dfl(dst_cgrp)) return 0; @@ -2581,7 +2584,7 @@ int cgroup_migrate_vet_dst(struct cgroup *dst_cgrp) return 0; =20 /* apply no-internal-process constraint */ - if (dst_cgrp->subtree_control) + if (dst_cgrp->subtree_control && !list_empty(children)) return -EBUSY; =20 return 0; --=20 1.9.1