|
|
@@ -5444,22 +5444,14 @@ static int mem_cgroup_swappiness_write(struct cgroup_subsys_state *css,
|
|
|
struct cftype *cft, u64 val)
|
|
|
{
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_css(css);
|
|
|
- struct mem_cgroup *parent = mem_cgroup_from_css(css_parent(&memcg->css));
|
|
|
|
|
|
- if (val > 100 || !parent)
|
|
|
+ if (val > 100)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- mutex_lock(&memcg_create_mutex);
|
|
|
-
|
|
|
- /* If under hierarchy, only empty-root can set this value */
|
|
|
- if ((parent->use_hierarchy) || memcg_has_children(memcg)) {
|
|
|
- mutex_unlock(&memcg_create_mutex);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
- memcg->swappiness = val;
|
|
|
-
|
|
|
- mutex_unlock(&memcg_create_mutex);
|
|
|
+ if (css_parent(css))
|
|
|
+ memcg->swappiness = val;
|
|
|
+ else
|
|
|
+ vm_swappiness = val;
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -5791,22 +5783,15 @@ static int mem_cgroup_oom_control_write(struct cgroup_subsys_state *css,
|
|
|
struct cftype *cft, u64 val)
|
|
|
{
|
|
|
struct mem_cgroup *memcg = mem_cgroup_from_css(css);
|
|
|
- struct mem_cgroup *parent = mem_cgroup_from_css(css_parent(&memcg->css));
|
|
|
|
|
|
/* cannot set to root cgroup and only 0 and 1 are allowed */
|
|
|
- if (!parent || !((val == 0) || (val == 1)))
|
|
|
+ if (!css_parent(css) || !((val == 0) || (val == 1)))
|
|
|
return -EINVAL;
|
|
|
|
|
|
- mutex_lock(&memcg_create_mutex);
|
|
|
- /* oom-kill-disable is a flag for subhierarchy. */
|
|
|
- if ((parent->use_hierarchy) || memcg_has_children(memcg)) {
|
|
|
- mutex_unlock(&memcg_create_mutex);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
memcg->oom_kill_disable = val;
|
|
|
if (!val)
|
|
|
memcg_oom_recover(memcg);
|
|
|
- mutex_unlock(&memcg_create_mutex);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|