Browse code

Merge pull request #3487 from crosbymichael/improve-images-speed

Only get rootfs when we need to calculate the image size

Michael Crosby authored on 2014/01/08 07:47:31
Showing 1 changed files
... ...
@@ -87,17 +87,17 @@ func (graph *Graph) Get(name string) (*Image, error) {
87 87
 	if err != nil {
88 88
 		return nil, err
89 89
 	}
90
-	// Check that the filesystem layer exists
91
-	rootfs, err := graph.driver.Get(img.ID)
92
-	if err != nil {
93
-		return nil, fmt.Errorf("Driver %s failed to get image rootfs %s: %s", graph.driver, img.ID, err)
94
-	}
95 90
 	if img.ID != id {
96 91
 		return nil, fmt.Errorf("Image stored at '%s' has wrong id '%s'", id, img.ID)
97 92
 	}
98 93
 	img.graph = graph
99 94
 
100 95
 	if img.Size < 0 {
96
+		rootfs, err := graph.driver.Get(img.ID)
97
+		if err != nil {
98
+			return nil, fmt.Errorf("Driver %s failed to get image rootfs %s: %s", graph.driver, img.ID, err)
99
+		}
100
+
101 101
 		var size int64
102 102
 		if img.Parent == "" {
103 103
 			if size, err = utils.TreeSize(rootfs); err != nil {