Skip to content

Commit 940e154

Browse files
committed
cgroupv1/systemd: (re)use m.paths
In all these cases, getSubsystemPath() was already called, and its result stored in m.paths map. It makes no sense to not reuse it. Signed-off-by: Kir Kolyshkin <[email protected]>
1 parent f075084 commit 940e154

File tree

1 file changed

+16
-17
lines changed
  • libcontainer/cgroups/systemd

1 file changed

+16
-17
lines changed

libcontainer/cgroups/systemd/v1.go

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -289,33 +289,32 @@ func getSubsystemPath(c *configs.Cgroup, subsystem string) (string, error) {
289289
}
290290

291291
func (m *legacyManager) Freeze(state configs.FreezerState) error {
292-
path, err := getSubsystemPath(m.cgroups, "freezer")
293-
if err != nil {
294-
return err
292+
path, ok := m.paths["freezer"]
293+
if !ok {
294+
return errSubsystemDoesNotExist
295295
}
296296
prevState := m.cgroups.Resources.Freezer
297297
m.cgroups.Resources.Freezer = state
298298
freezer := &fs.FreezerGroup{}
299-
err = freezer.Set(path, m.cgroups)
300-
if err != nil {
299+
if err := freezer.Set(path, m.cgroups); err != nil {
301300
m.cgroups.Resources.Freezer = prevState
302301
return err
303302
}
304303
return nil
305304
}
306305

307306
func (m *legacyManager) GetPids() ([]int, error) {
308-
path, err := getSubsystemPath(m.cgroups, "devices")
309-
if err != nil {
310-
return nil, err
307+
path, ok := m.paths["devices"]
308+
if !ok {
309+
return nil, errSubsystemDoesNotExist
311310
}
312311
return cgroups.GetPids(path)
313312
}
314313

315314
func (m *legacyManager) GetAllPids() ([]int, error) {
316-
path, err := getSubsystemPath(m.cgroups, "devices")
317-
if err != nil {
318-
return nil, err
315+
path, ok := m.paths["devices"]
316+
if !ok {
317+
return nil, errSubsystemDoesNotExist
319318
}
320319
return cgroups.GetAllPids(path)
321320
}
@@ -386,9 +385,9 @@ func (m *legacyManager) Set(container *configs.Config) error {
386385

387386
for _, sys := range legacySubsystems {
388387
// Get the subsystem path, but don't error out for not found cgroups.
389-
path, err := getSubsystemPath(container.Cgroups, sys.Name())
390-
if err != nil && !cgroups.IsNotFound(err) {
391-
return err
388+
path, ok := m.paths[sys.Name()]
389+
if !ok {
390+
continue
392391
}
393392
if err := sys.Set(path, container.Cgroups); err != nil {
394393
return err
@@ -430,9 +429,9 @@ func (m *legacyManager) GetCgroups() (*configs.Cgroup, error) {
430429
}
431430

432431
func (m *legacyManager) GetFreezerState() (configs.FreezerState, error) {
433-
path, err := getSubsystemPath(m.cgroups, "freezer")
434-
if err != nil && !cgroups.IsNotFound(err) {
435-
return configs.Undefined, err
432+
path, ok := m.paths["freezer"]
433+
if !ok {
434+
return configs.Undefined, nil
436435
}
437436
freezer := &fs.FreezerGroup{}
438437
return freezer.GetState(path)

0 commit comments

Comments
 (0)