Jelajahi Sumber

Merge pull request #36047 from cpuguy83/graphdriver_improvements

Do not make graphdriver homes private mounts.
Michael Crosby 7 tahun lalu
induk
melakukan
2c05aefc99

+ 1 - 5
daemon/graphdriver/aufs/aufs.go

@@ -136,10 +136,6 @@ func Init(root string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
 		return nil, err
 		return nil, err
 	}
 	}
 
 
-	if err := mountpk.MakePrivate(root); err != nil {
-		return nil, err
-	}
-
 	// Populate the dir structure
 	// Populate the dir structure
 	for _, p := range paths {
 	for _, p := range paths {
 		if err := idtools.MkdirAllAndChown(path.Join(root, p), 0700, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
 		if err := idtools.MkdirAllAndChown(path.Join(root, p), 0700, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
@@ -607,7 +603,7 @@ func (a *Driver) Cleanup() error {
 			logrus.Debugf("aufs error unmounting %s: %s", m, err)
 			logrus.Debugf("aufs error unmounting %s: %s", m, err)
 		}
 		}
 	}
 	}
-	return mountpk.Unmount(a.root)
+	return mountpk.RecursiveUnmount(a.root)
 }
 }
 
 
 func (a *Driver) aufsMount(ro []string, rw, target, mountLabel string) (err error) {
 func (a *Driver) aufsMount(ro []string, rw, target, mountLabel string) (err error) {

+ 1 - 5
daemon/graphdriver/btrfs/btrfs.go

@@ -77,10 +77,6 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
 		return nil, err
 		return nil, err
 	}
 	}
 
 
-	if err := mount.MakePrivate(home); err != nil {
-		return nil, err
-	}
-
 	opt, userDiskQuota, err := parseOptions(options)
 	opt, userDiskQuota, err := parseOptions(options)
 	if err != nil {
 	if err != nil {
 		return nil, err
 		return nil, err
@@ -167,7 +163,7 @@ func (d *Driver) Cleanup() error {
 		return err
 		return err
 	}
 	}
 
 
-	return mount.Unmount(d.home)
+	return mount.RecursiveUnmount(d.home)
 }
 }
 
 
 func free(p *C.char) {
 func free(p *C.char) {

+ 1 - 5
daemon/graphdriver/devmapper/driver.go

@@ -42,10 +42,6 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
 		return nil, err
 		return nil, err
 	}
 	}
 
 
-	if err := mount.MakePrivate(home); err != nil {
-		return nil, err
-	}
-
 	d := &Driver{
 	d := &Driver{
 		DeviceSet: deviceSet,
 		DeviceSet: deviceSet,
 		home:      home,
 		home:      home,
@@ -127,7 +123,7 @@ func (d *Driver) GetMetadata(id string) (map[string]string, error) {
 func (d *Driver) Cleanup() error {
 func (d *Driver) Cleanup() error {
 	err := d.DeviceSet.Shutdown(d.home)
 	err := d.DeviceSet.Shutdown(d.home)
 
 
-	if err2 := mount.Unmount(d.home); err == nil {
+	if err2 := mount.RecursiveUnmount(d.home); err == nil {
 		err = err2
 		err = err2
 	}
 	}
 
 

+ 1 - 5
daemon/graphdriver/overlay/overlay.go

@@ -164,10 +164,6 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
 		return nil, err
 		return nil, err
 	}
 	}
 
 
-	if err := mount.MakePrivate(home); err != nil {
-		return nil, err
-	}
-
 	d := &Driver{
 	d := &Driver{
 		home:          home,
 		home:          home,
 		uidMaps:       uidMaps,
 		uidMaps:       uidMaps,
@@ -248,7 +244,7 @@ func (d *Driver) GetMetadata(id string) (map[string]string, error) {
 // is being shutdown. For now, we just have to unmount the bind mounted
 // is being shutdown. For now, we just have to unmount the bind mounted
 // we had created.
 // we had created.
 func (d *Driver) Cleanup() error {
 func (d *Driver) Cleanup() error {
-	return mount.Unmount(d.home)
+	return mount.RecursiveUnmount(d.home)
 }
 }
 
 
 // CreateReadWrite creates a layer that is writable for use as a container
 // CreateReadWrite creates a layer that is writable for use as a container

+ 1 - 5
daemon/graphdriver/overlay2/overlay.go

@@ -201,10 +201,6 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap
 		return nil, err
 		return nil, err
 	}
 	}
 
 
-	if err := mount.MakePrivate(home); err != nil {
-		return nil, err
-	}
-
 	d := &Driver{
 	d := &Driver{
 		home:          home,
 		home:          home,
 		uidMaps:       uidMaps,
 		uidMaps:       uidMaps,
@@ -335,7 +331,7 @@ func (d *Driver) GetMetadata(id string) (map[string]string, error) {
 // is being shutdown. For now, we just have to unmount the bind mounted
 // is being shutdown. For now, we just have to unmount the bind mounted
 // we had created.
 // we had created.
 func (d *Driver) Cleanup() error {
 func (d *Driver) Cleanup() error {
-	return mount.Unmount(d.home)
+	return mount.RecursiveUnmount(d.home)
 }
 }
 
 
 // CreateReadWrite creates a layer that is writable for use as a container
 // CreateReadWrite creates a layer that is writable for use as a container

+ 2 - 6
daemon/graphdriver/zfs/zfs.go

@@ -108,9 +108,6 @@ func Init(base string, opt []string, uidMaps, gidMaps []idtools.IDMap) (graphdri
 		return nil, fmt.Errorf("Failed to create '%s': %v", base, err)
 		return nil, fmt.Errorf("Failed to create '%s': %v", base, err)
 	}
 	}
 
 
-	if err := mount.MakePrivate(base); err != nil {
-		return nil, err
-	}
 	d := &Driver{
 	d := &Driver{
 		dataset:          rootDataset,
 		dataset:          rootDataset,
 		options:          options,
 		options:          options,
@@ -181,10 +178,9 @@ func (d *Driver) String() string {
 	return "zfs"
 	return "zfs"
 }
 }
 
 
-// Cleanup is called on daemon shutdown. It unmounts the bind mount
-// created by mount.MakePrivate() in Init().
+// Cleanup is called on daemon shutdown, it is used to clean up any remaining mounts
 func (d *Driver) Cleanup() error {
 func (d *Driver) Cleanup() error {
-	return mount.Unmount(d.options.mountPath)
+	return mount.RecursiveUnmount(d.options.mountPath)
 }
 }
 
 
 // Status returns information about the ZFS filesystem. It returns a two dimensional array of information
 // Status returns information about the ZFS filesystem. It returns a two dimensional array of information