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: 13a5703d85
("cgroups: don't change a freezer state if an operation failed")
Signed-off-by: Andrey Vagin <avagin@openvz.org>
This commit is contained in:
parent
73ba097bf5
commit
30b3306416
|
@ -124,14 +124,16 @@ func Freeze(c *cgroups.Cgroup, state cgroups.FreezerState) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prevState := c.Freezer
|
||||||
|
c.Freezer = state
|
||||||
|
|
||||||
freezer := subsystems["freezer"]
|
freezer := subsystems["freezer"]
|
||||||
err = freezer.Set(d)
|
err = freezer.Set(d)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
c.Freezer = prevState
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Freezer = state
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue