[PATCH 4.12 008/106] cgroup: fix error return value from cgroup_subtree_control()

2017-08-09 Thread Greg Kroah-Hartman
4.12-stable review patch.  If anyone has any objections, please let me know.

--

From: Tejun Heo 

commit 3c74541777302eec43a0d1327c4d58b8659a776b upstream.

While refactoring, f7b2814bb9b6 ("cgroup: factor out
cgroup_{apply|finalize}_control() from
cgroup_subtree_control_write()") broke error return value from the
function.  The return value from the last operation is always
overridden to zero.  Fix it.

Signed-off-by: Tejun Heo 
Signed-off-by: Tejun Heo 
Signed-off-by: Greg Kroah-Hartman 

---
 kernel/cgroup/cgroup.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -2921,11 +2921,11 @@ static ssize_t cgroup_subtree_control_wr
cgrp->subtree_control &= ~disable;
 
ret = cgroup_apply_control(cgrp);
-
cgroup_finalize_control(cgrp, ret);
+   if (ret)
+   goto out_unlock;
 
kernfs_activate(cgrp->kn);
-   ret = 0;
 out_unlock:
cgroup_kn_unlock(of->kn);
return ret ?: nbytes;




[PATCH 4.12 008/106] cgroup: fix error return value from cgroup_subtree_control()

2017-08-09 Thread Greg Kroah-Hartman
4.12-stable review patch.  If anyone has any objections, please let me know.

--

From: Tejun Heo 

commit 3c74541777302eec43a0d1327c4d58b8659a776b upstream.

While refactoring, f7b2814bb9b6 ("cgroup: factor out
cgroup_{apply|finalize}_control() from
cgroup_subtree_control_write()") broke error return value from the
function.  The return value from the last operation is always
overridden to zero.  Fix it.

Signed-off-by: Tejun Heo 
Signed-off-by: Tejun Heo 
Signed-off-by: Greg Kroah-Hartman 

---
 kernel/cgroup/cgroup.c |4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -2921,11 +2921,11 @@ static ssize_t cgroup_subtree_control_wr
cgrp->subtree_control &= ~disable;
 
ret = cgroup_apply_control(cgrp);
-
cgroup_finalize_control(cgrp, ret);
+   if (ret)
+   goto out_unlock;
 
kernfs_activate(cgrp->kn);
-   ret = 0;
 out_unlock:
cgroup_kn_unlock(of->kn);
return ret ?: nbytes;