Bläddra i källkod

Don't rejoin the cgroup each time
Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)

Michael Crosby 11 år sedan
förälder
incheckning
534521301c
1 ändrade filer med 8 tillägg och 6 borttagningar
  1. 8 6
      pkg/libcontainer/cgroups/fs/freezer.go

+ 8 - 6
pkg/libcontainer/cgroups/fs/freezer.go

@@ -12,18 +12,20 @@ type freezerGroup struct {
 }
 
 func (s *freezerGroup) Set(d *data) error {
-	dir, err := d.join("freezer")
-	if err != nil {
-		if err != cgroups.ErrNotFound {
+	switch d.c.Freezer {
+	case cgroups.Frozen, cgroups.Thawed:
+		dir, err := d.path("freezer")
+		if err != nil {
 			return err
 		}
-		return nil
-	}
 
-	if d.c.Freezer != cgroups.Undefined {
 		if err := writeFile(dir, "freezer.state", string(d.c.Freezer)); err != nil {
 			return err
 		}
+	default:
+		if _, err := d.join("freezer"); err != nil && err != cgroups.ErrNotFound {
+			return err
+		}
 	}
 
 	return nil