Browse code

Fix spurious mtab symlink error when /etc doesn't exist yet

symlink /proc/mounts /var/lib/docker/btrfs/subvolumes/1763d6602b8b871f0a79754f1cb0a31b3928bb95de5232b1b8c15c60fa1017f6-init/etc/mtab: no such file or directory

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)

Tianon Gravi authored on 2014/04/10 02:13:54
Showing 1 changed files
... ...
@@ -272,15 +272,15 @@ func SetupInitLayer(initLayer string) error {
272 272
 
273 273
 		if _, err := os.Stat(path.Join(initLayer, pth)); err != nil {
274 274
 			if os.IsNotExist(err) {
275
+				if err := os.MkdirAll(path.Join(initLayer, path.Dir(pth)), 0755); err != nil {
276
+					return err
277
+				}
275 278
 				switch typ {
276 279
 				case "dir":
277 280
 					if err := os.MkdirAll(path.Join(initLayer, pth), 0755); err != nil {
278 281
 						return err
279 282
 					}
280 283
 				case "file":
281
-					if err := os.MkdirAll(path.Join(initLayer, path.Dir(pth)), 0755); err != nil {
282
-						return err
283
-					}
284 284
 					f, err := os.OpenFile(path.Join(initLayer, pth), os.O_CREATE, 0755)
285 285
 					if err != nil {
286 286
 						return err