From 30b33064169e09e1c5daacb38ed461ed5820d0d2 Mon Sep 17 00:00:00 2001 From: Andrey Vagin Date: Mon, 19 Jan 2015 17:04:14 +0300 Subject: [PATCH] cgroups: set a freezer state before calling FreezerGroup.Set() My previous patch moved the setting of the freezer state after the Set() command. It's wrong, because this command uses it, so we need to set the freezer state before the command and rollback it in an error case. Fixes: 13a5703d853f ("cgroups: don't change a freezer state if an operation failed") Signed-off-by: Andrey Vagin --- cgroups/fs/apply_raw.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cgroups/fs/apply_raw.go b/cgroups/fs/apply_raw.go index 5338293f2..58046b0ad 100644 --- a/cgroups/fs/apply_raw.go +++ b/cgroups/fs/apply_raw.go @@ -124,14 +124,16 @@ func Freeze(c *cgroups.Cgroup, state cgroups.FreezerState) error { return err } + prevState := c.Freezer + c.Freezer = state + freezer := subsystems["freezer"] err = freezer.Set(d) if err != nil { + c.Freezer = prevState return err } - c.Freezer = state - return nil }