ソースを参照

c8d/mount: Use ref-counted mounter by default

All commonly used filesystems should use ref-counted mounter, so make it
the default instead of having to whitelist them.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
Paweł Gronowski 1 年間 前
コミット
ae6468b4b9
1 ファイル変更9 行追加29 行削除
  1. 9 29
      daemon/snapshotter/mount.go

+ 9 - 29
daemon/snapshotter/mount.go

@@ -13,9 +13,6 @@ import (
 	"github.com/moby/sys/mountinfo"
 	"github.com/moby/sys/mountinfo"
 )
 )
 
 
-// List of known filesystems that can't be re-mounted or have shared layers
-var refCountedFileSystems = []string{"fuse-overlayfs", "overlayfs", "stargz", "zfs"}
-
 // Mounter handles mounting/unmounting things coming in from a snapshotter
 // Mounter handles mounting/unmounting things coming in from a snapshotter
 // with optional reference counting if needed by the filesystem
 // with optional reference counting if needed by the filesystem
 type Mounter interface {
 type Mounter interface {
@@ -27,34 +24,17 @@ type Mounter interface {
 	Mounted(containerID string) (string, error)
 	Mounted(containerID string) (string, error)
 }
 }
 
 
-// inSlice tests whether a string is contained in a slice of strings or not.
-// Comparison is case sensitive
-func inSlice(slice []string, s string) bool {
-	for _, ss := range slice {
-		if s == ss {
-			return true
-		}
-	}
-	return false
-}
-
 // NewMounter creates a new mounter for the provided snapshotter
 // NewMounter creates a new mounter for the provided snapshotter
-func NewMounter(home string, snapshotter string, idMap idtools.IdentityMapping) Mounter {
-	mnter := mounter{
-		home:        home,
-		snapshotter: snapshotter,
-		idMap:       idMap,
+func NewMounter(home string, snapshotter string, idMap idtools.IdentityMapping) *refCountMounter {
+	return &refCountMounter{
+		base: mounter{
+			home:        home,
+			snapshotter: snapshotter,
+			idMap:       idMap,
+		},
+		rc:     graphdriver.NewRefCounter(checker()),
+		locker: locker.New(),
 	}
 	}
-
-	if inSlice(refCountedFileSystems, snapshotter) {
-		return &refCountMounter{
-			base:   mnter,
-			rc:     graphdriver.NewRefCounter(checker()),
-			locker: locker.New(),
-		}
-	}
-
-	return &mnter
 }
 }
 
 
 type refCountMounter struct {
 type refCountMounter struct {