diff --git a/libcontainer/cgroups/fs/fs.go b/libcontainer/cgroups/fs/fs.go index 0f0a7a865..dd62dc1e3 100644 --- a/libcontainer/cgroups/fs/fs.go +++ b/libcontainer/cgroups/fs/fs.go @@ -18,7 +18,7 @@ import ( ) var ( - subsystems = subsystemSet{ + subsystems = []subsystem{ &CpusetGroup{}, &DevicesGroup{}, &MemoryGroup{}, @@ -38,17 +38,6 @@ var ( var errSubsystemDoesNotExist = errors.New("cgroup: subsystem does not exist") -type subsystemSet []subsystem - -func (s subsystemSet) Get(name string) (subsystem, error) { - for _, ss := range s { - if ss.Name() == name { - return ss, nil - } - } - return nil, errSubsystemDoesNotExist -} - type subsystem interface { // Name returns the name of the subsystem. Name() string @@ -244,9 +233,9 @@ func (m *manager) GetStats() (*cgroups.Stats, error) { m.mu.Lock() defer m.mu.Unlock() stats := cgroups.NewStats() - for name, path := range m.paths { - sys, err := subsystems.Get(name) - if err == errSubsystemDoesNotExist { + for _, sys := range subsystems { + path := m.paths[sys.Name()] + if path == "" { continue } if err := sys.GetStats(path, stats); err != nil { diff --git a/libcontainer/cgroups/systemd/v1.go b/libcontainer/cgroups/systemd/v1.go index c3cc9c8b3..7217b0af7 100644 --- a/libcontainer/cgroups/systemd/v1.go +++ b/libcontainer/cgroups/systemd/v1.go @@ -41,18 +41,7 @@ type subsystem interface { var errSubsystemDoesNotExist = errors.New("cgroup: subsystem does not exist") -type subsystemSet []subsystem - -func (s subsystemSet) Get(name string) (subsystem, error) { - for _, ss := range s { - if ss.Name() == name { - return ss, nil - } - } - return nil, errSubsystemDoesNotExist -} - -var legacySubsystems = subsystemSet{ +var legacySubsystems = []subsystem{ &fs.CpusetGroup{}, &fs.DevicesGroup{}, &fs.MemoryGroup{}, @@ -355,9 +344,9 @@ func (m *legacyManager) GetStats() (*cgroups.Stats, error) { m.mu.Lock() defer m.mu.Unlock() stats := cgroups.NewStats() - for name, path := range m.paths { - sys, err := legacySubsystems.Get(name) - if err == errSubsystemDoesNotExist || !cgroups.PathExists(path) { + for _, sys := range legacySubsystems { + path := m.paths[sys.Name()] + if path == "" { continue } if err := sys.GetStats(path, stats); err != nil {