summaryrefslogtreecommitdiffstats
path: root/include/linux/cgroup.h
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2019-05-31 10:38:58 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-08-09 17:53:36 +0200
commitfeb6b123b7ddfa381f6ea8c04ea8a305416c4b8e (patch)
tree3ca6bea6ada80291da7ae5713ef5f36aed2785b3 /include/linux/cgroup.h
parentb0af004fd58ded5f898630db008c5b824c27d7db (diff)
downloadlinux-stable-feb6b123b7ddfa381f6ea8c04ea8a305416c4b8e.tar.gz
linux-stable-feb6b123b7ddfa381f6ea8c04ea8a305416c4b8e.tar.bz2
linux-stable-feb6b123b7ddfa381f6ea8c04ea8a305416c4b8e.zip
cgroup: Include dying leaders with live threads in PROCS iterations
commit c03cd7738a83b13739f00546166969342c8ff014 upstream. CSS_TASK_ITER_PROCS currently iterates live group leaders; however, this means that a process with dying leader and live threads will be skipped. IOW, cgroup.procs might be empty while cgroup.threads isn't, which is confusing to say the least. Fix it by making cset track dying tasks and include dying leaders with live threads in PROCS iteration. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-and-tested-by: Topi Miettinen <toiwoton@gmail.com> Cc: Oleg Nesterov <oleg@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/cgroup.h')
-rw-r--r--include/linux/cgroup.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index a5f6253b014d..0e21619f1c03 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -59,6 +59,7 @@ struct css_task_iter {
struct list_head *task_pos;
struct list_head *tasks_head;
struct list_head *mg_tasks_head;
+ struct list_head *dying_tasks_head;
struct css_set *cur_cset;
struct css_set *cur_dcset;