chiark / gitweb /
cgroup-util: fix enabling of controllers (#8816)
authorAntique <phrdina@redhat.com>
Thu, 26 Apr 2018 10:37:35 +0000 (12:37 +0200)
committerSven Eden <yamakuzure@gmx.net>
Thu, 28 Jun 2018 07:24:07 +0000 (09:24 +0200)
If enabling controller for some reason fails we need to clear error
for the FILE stream.  Enabling remaining controllers would otherwise
fail because write_string_stream_ts() checks for ferror(f) and returns
-EIO if there is one.

Broken by commit <77fa610b22>.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
(cherry picked from commit 96aa6591d1103b8cca9a4db80ba478a18bdf3e9a)

src/basic/cgroup-util.c

index bc012b6b2cbd0c1390471b60d0762ce7f7ae6c58..fa92750439f190c9d050da229f68cc4ee81d4f70 100644 (file)
@@ -2727,8 +2727,10 @@ int cg_enable_everywhere(CGroupMask supported, CGroupMask mask, const char *p) {
                         }
 
                         r = write_string_stream(f, s, 0);
-                        if (r < 0)
+                        if (r < 0) {
                                 log_debug_errno(r, "Failed to enable controller %s for %s (%s): %m", n, p, fs);
+                                clearerr(f);
+                        }
                 }
         }