cgroup: fix default notify_on_release setting
PATCH 1/1 cgroup: fix default notify_on_release setting
The documentation says the default value of notify_on_release of a child cgroup is inherited from its parent, which is reasonable, but the implementation just sets the flag disabled.
--- kernel/cgroup.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
kernel/cgroup.c +3 -1
@@ -2232,7 +2232,6 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,mutex_lock (&cgroup_mutex); - cgrp->flags =0 ;INIT_LIST_HEAD (&cgrp->sibling);INIT_LIST_HEAD (&cgrp->children);INIT_LIST_HEAD (&cgrp->css_sets);
@@ -2242,6 +2241,9 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry, cgrp->root = parent->root; cgrp->top_cgroup = parent->top_cgroup; +if (notify_on_release (parent)) +set_bit (CGRP_NOTIFY_ON_RELEASE , &cgrp->flags); +for_each_subsys (root, ss) {struct cgroup_subsys_state *css = ss->create (ss, cgrp);if (IS_ERR (css)) {
Signature · 1 line
1.5.4.rc3
A message that is not in the archive (sent off-list or not yet received): [email protected]
Paul Menage
Acked-byQuoted 5 lines · Li Zefan
The documentation says the default value of
notify_on_releaseof
a child cgroup is inherited from its parent, which is reasonable, but the implementation just sets the flag disabled.Signed-off-by Li Zefan <[email protected]>
Yes, I guess it makes sense to follow the original cpusets behaviour. I think that got lost when the notify-on-release functionality was temporarily removed during cgroups development.
Quoted 30 lines
---
kernel/cgroup.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)diff --git
a/kernel/cgroup.cb/kernel/cgroup.c
index d8abe99..e9c2fb0 100644
---a/kernel/cgroup.c
+++b/kernel/cgroup.c
@@ -2232,7 +2232,6 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,mutex_lock(&cgroup_mutex);- cgrp->flags = 0; INIT_LIST_HEAD(&cgrp->sibling); INIT_LIST_HEAD(&cgrp->children); INIT_LIST_HEAD(&cgrp->css_sets); @@ -2242,6 +2241,9 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry, cgrp->root = parent->root; cgrp->top_cgroup = parent->top_cgroup;+ if (
notify_on_release(parent))
+set_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags);
+for_each_subsys(root, ss) { struct cgroup_subsys_state *css = ss->create(ss, cgrp); if (IS_ERR(css)) {--
1.5.4.rc3
Quoted 5 lines · Li Zefan
The documentation says the default value of
notify_on_releaseof
a child cgroup is inherited from its parent, which is reasonable, but the implementation just sets the flag disabled.Signed-off-by Li Zefan <[email protected]>
Yes, I guess it makes sense to follow the original cpusets behaviour. I think that got lost when the notify-on-release functionality was temporarily removed during cgroups development.
Quoted 30 lines
---
kernel/cgroup.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)diff --git
a/kernel/cgroup.cb/kernel/cgroup.c
index d8abe99..e9c2fb0 100644
---a/kernel/cgroup.c
+++b/kernel/cgroup.c
@@ -2232,7 +2232,6 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,mutex_lock(&cgroup_mutex);- cgrp->flags = 0; INIT_LIST_HEAD(&cgrp->sibling); INIT_LIST_HEAD(&cgrp->children); INIT_LIST_HEAD(&cgrp->css_sets); @@ -2242,6 +2241,9 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry, cgrp->root = parent->root; cgrp->top_cgroup = parent->top_cgroup;+ if (
notify_on_release(parent))
+set_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags);
+for_each_subsys(root, ss) { struct cgroup_subsys_state *css = ss->create(ss, cgrp); if (IS_ERR(css)) {--
1.5.4.rc3
A message that is not in the archive (sent off-list or not yet received): 6599ad830802242222p7d42d2b2ue7c585eae8f3bed-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 6 lines
@@ -2242,6 +2241,9 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
cgrp->root = parent->root; cgrp->top_cgroup = parent->top_cgroup;+ if (
notify_on_release(parent))
+set_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags);
Good catch, Li Zefan - thanks.
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj-sJ/[email protected]> 1.940.382.4214Quoted 6 lines
@@ -2242,6 +2241,9 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
cgrp->root = parent->root; cgrp->top_cgroup = parent->top_cgroup;+ if (
notify_on_release(parent))
+set_bit(CGRP_NOTIFY_ON_RELEASE, &cgrp->flags);
Good catch, Li Zefan - thanks.
Signature · 3 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.940.382.4214