diff --git a/MAINTAINERS b/MAINTAINERS index bf6650f41b04f85b19b8a7ae6e404e60523ecebb..1f40c1135baeb2e0dc7c7bae04b1ef68e73c76b0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -5246,6 +5246,7 @@ F: block/blk-throttle.c F: include/linux/blk-cgroup.h CONTROL GROUP - CPUSET +M: Waiman Long <longman@redhat.com> M: Zefan Li <lizefan.x@bytedance.com> L: cgroups@vger.kernel.org S: Maintained diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index e4bb5d57f4d1d46cd0f1309765134c17410cf1cd..5f2090d051acba2fd4718c07ffc193d21ac40777 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -6049,6 +6049,9 @@ struct cgroup *cgroup_get_from_id(u64 id) if (!kn) goto out; + if (kernfs_type(kn) != KERNFS_DIR) + goto put; + rcu_read_lock(); cgrp = rcu_dereference(*(void __rcu __force **)&kn->priv); @@ -6056,7 +6059,7 @@ struct cgroup *cgroup_get_from_id(u64 id) cgrp = NULL; rcu_read_unlock(); - +put: kernfs_put(kn); out: return cgrp;