summaryrefslogtreecommitdiff
path: root/pkg/cgroups/cgroups.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-10-06 10:15:04 +0200
committerGitHub <noreply@github.com>2020-10-06 10:15:04 +0200
commit80a2317ca20b0e5e1cd064a8962beed642be3a36 (patch)
tree0730915a611542bf028d5b9c66ace1390a6c036f /pkg/cgroups/cgroups.go
parentf584d47a9d0c050c3b39793a73b0aba17b45e8ba (diff)
parentd4aa89bb40b3a2c1730c9bff31a681007a3feb97 (diff)
downloadpodman-80a2317ca20b0e5e1cd064a8962beed642be3a36.tar.gz
podman-80a2317ca20b0e5e1cd064a8962beed642be3a36.tar.bz2
podman-80a2317ca20b0e5e1cd064a8962beed642be3a36.zip
Merge pull request #7929 from kolyshkin/nits-err
Nits
Diffstat (limited to 'pkg/cgroups/cgroups.go')
-rw-r--r--pkg/cgroups/cgroups.go35
1 files changed, 14 insertions, 21 deletions
diff --git a/pkg/cgroups/cgroups.go b/pkg/cgroups/cgroups.go
index f23787bd4..0d7ed05b2 100644
--- a/pkg/cgroups/cgroups.go
+++ b/pkg/cgroups/cgroups.go
@@ -2,6 +2,7 @@ package cgroups
import (
"bufio"
+ "bytes"
"fmt"
"io/ioutil"
"math"
@@ -131,7 +132,7 @@ func getAvailableControllers(exclude map[string]controllerHandler, cgroup2 bool)
infos, err := ioutil.ReadDir(cgroupRoot)
if err != nil {
- return nil, errors.Wrapf(err, "read directory %s", cgroupRoot)
+ return nil, err
}
controllers := []controller{}
for _, i := range infos {
@@ -155,23 +156,15 @@ func (c *CgroupControl) getCgroupv1Path(name string) string {
// createCgroupv2Path creates the cgroupv2 path and enables all the available controllers
func createCgroupv2Path(path string) (deferredError error) {
- content, err := ioutil.ReadFile("/sys/fs/cgroup/cgroup.controllers")
- if err != nil {
- return errors.Wrapf(err, "read /sys/fs/cgroup/cgroup.controllers")
- }
- if !strings.HasPrefix(path, "/sys/fs/cgroup/") {
+ if !strings.HasPrefix(path, cgroupRoot+"/") {
return fmt.Errorf("invalid cgroup path %s", path)
}
-
- res := ""
- for i, c := range strings.Split(strings.TrimSpace(string(content)), " ") {
- if i == 0 {
- res = fmt.Sprintf("+%s", c)
- } else {
- res += fmt.Sprintf(" +%s", c)
- }
+ content, err := ioutil.ReadFile(cgroupRoot + "/cgroup.controllers")
+ if err != nil {
+ return err
}
- resByte := []byte(res)
+ ctrs := bytes.Fields(content)
+ res := append([]byte("+"), bytes.Join(ctrs, []byte(" +"))...)
current := "/sys/fs"
elements := strings.Split(path, "/")
@@ -180,7 +173,7 @@ func createCgroupv2Path(path string) (deferredError error) {
if i > 0 {
if err := os.Mkdir(current, 0755); err != nil {
if !os.IsExist(err) {
- return errors.Wrapf(err, "mkdir %s", path)
+ return err
}
} else {
// If the directory was created, be sure it is not left around on errors.
@@ -194,8 +187,8 @@ func createCgroupv2Path(path string) (deferredError error) {
// We enable the controllers for all the path components except the last one. It is not allowed to add
// PIDs if there are already enabled controllers.
if i < len(elements[3:])-1 {
- if err := ioutil.WriteFile(filepath.Join(current, "cgroup.subtree_control"), resByte, 0755); err != nil {
- return errors.Wrapf(err, "write %s", filepath.Join(current, "cgroup.subtree_control"))
+ if err := ioutil.WriteFile(filepath.Join(current, "cgroup.subtree_control"), res, 0755); err != nil {
+ return err
}
}
}
@@ -237,7 +230,7 @@ func (c *CgroupControl) initialize() (err error) {
}
path := c.getCgroupv1Path(ctr.name)
if err := os.MkdirAll(path, 0755); err != nil {
- return errors.Wrapf(err, "error creating cgroup path %s for %s", path, ctr.name)
+ return errors.Wrapf(err, "error creating cgroup path for %s", ctr.name)
}
}
}
@@ -265,7 +258,7 @@ func (c *CgroupControl) createCgroupDirectory(controller string) (bool, error) {
func readFileAsUint64(path string) (uint64, error) {
data, err := ioutil.ReadFile(path)
if err != nil {
- return 0, errors.Wrapf(err, "open %s", path)
+ return 0, err
}
v := cleanString(string(data))
if v == "max" {
@@ -425,7 +418,7 @@ func rmDirRecursively(path string) error {
}
entries, err := ioutil.ReadDir(path)
if err != nil {
- return errors.Wrapf(err, "read %s", path)
+ return err
}
for _, i := range entries {
if i.IsDir() {