Skip to content

Commit cc4c822

Browse files
committed
libct/cg/sd/v2: move fsMgr init to NewUnifiedManager
Many operations require fsMgr, so let's create it right in NewUnifiedManager and reuse. Signed-off-by: Kir Kolyshkin <[email protected]>
1 parent dda90c6 commit cc4c822

File tree

1 file changed

+13
-31
lines changed
  • libcontainer/cgroups/systemd

1 file changed

+13
-31
lines changed

libcontainer/cgroups/systemd/v2.go

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ type unifiedManager struct {
2222
mu sync.Mutex
2323
cgroups *configs.Cgroup
2424
// path is like "/sys/fs/cgroup/user.slice/user-1001.slice/session-1.scope"
25-
path string
26-
dbus *dbusConnManager
25+
path string
26+
dbus *dbusConnManager
27+
fsMgr cgroups.Manager
2728
}
2829

2930
func NewUnifiedManager(config *configs.Cgroup, path string) (cgroups.Manager, error) {
@@ -35,6 +36,11 @@ func NewUnifiedManager(config *configs.Cgroup, path string) (cgroups.Manager, er
3536
if err := m.initPath(); err != nil {
3637
return nil, err
3738
}
39+
var err error
40+
m.fsMgr, err = fs2.NewManager(config, m.path)
41+
if err != nil {
42+
return nil, err
43+
}
3844

3945
return m, nil
4046
}
@@ -361,16 +367,8 @@ func (m *unifiedManager) initPath() error {
361367
return nil
362368
}
363369

364-
func (m *unifiedManager) fsManager() (cgroups.Manager, error) {
365-
return fs2.NewManager(m.cgroups, m.path)
366-
}
367-
368370
func (m *unifiedManager) Freeze(state configs.FreezerState) error {
369-
fsMgr, err := m.fsManager()
370-
if err != nil {
371-
return err
372-
}
373-
return fsMgr.Freeze(state)
371+
return m.fsMgr.Freeze(state)
374372
}
375373

376374
func (m *unifiedManager) GetPids() ([]int, error) {
@@ -382,11 +380,7 @@ func (m *unifiedManager) GetAllPids() ([]int, error) {
382380
}
383381

384382
func (m *unifiedManager) GetStats() (*cgroups.Stats, error) {
385-
fsMgr, err := m.fsManager()
386-
if err != nil {
387-
return nil, err
388-
}
389-
return fsMgr.GetStats()
383+
return m.fsMgr.GetStats()
390384
}
391385

392386
func (m *unifiedManager) Set(r *configs.Resources) error {
@@ -399,11 +393,7 @@ func (m *unifiedManager) Set(r *configs.Resources) error {
399393
return fmt.Errorf("unable to set unit properties: %w", err)
400394
}
401395

402-
fsMgr, err := m.fsManager()
403-
if err != nil {
404-
return err
405-
}
406-
return fsMgr.Set(r)
396+
return m.fsMgr.Set(r)
407397
}
408398

409399
func (m *unifiedManager) GetPaths() map[string]string {
@@ -417,21 +407,13 @@ func (m *unifiedManager) GetCgroups() (*configs.Cgroup, error) {
417407
}
418408

419409
func (m *unifiedManager) GetFreezerState() (configs.FreezerState, error) {
420-
fsMgr, err := m.fsManager()
421-
if err != nil {
422-
return configs.Undefined, err
423-
}
424-
return fsMgr.GetFreezerState()
410+
return m.fsMgr.GetFreezerState()
425411
}
426412

427413
func (m *unifiedManager) Exists() bool {
428414
return cgroups.PathExists(m.path)
429415
}
430416

431417
func (m *unifiedManager) OOMKillCount() (uint64, error) {
432-
fsMgr, err := m.fsManager()
433-
if err != nil {
434-
return 0, err
435-
}
436-
return fsMgr.OOMKillCount()
418+
return m.fsMgr.OOMKillCount()
437419
}

0 commit comments

Comments
 (0)