소스 검색

pkg/containerfs: drop ContainerFS type alias

Signed-off-by: Cory Snider <csnider@mirantis.com>
Cory Snider 2 년 전
부모
커밋
9ce2b30b81

+ 2 - 3
builder/builder.go

@@ -14,7 +14,6 @@ import (
 	containerpkg "github.com/docker/docker/container"
 	containerpkg "github.com/docker/docker/container"
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/layer"
 	"github.com/docker/docker/layer"
-	"github.com/docker/docker/pkg/containerfs"
 )
 )
 
 
 const (
 const (
@@ -26,7 +25,7 @@ const (
 // instructions in the builder.
 // instructions in the builder.
 type Source interface {
 type Source interface {
 	// Root returns root path for accessing source
 	// Root returns root path for accessing source
-	Root() containerfs.ContainerFS
+	Root() string
 	// Close allows to signal that the filesystem tree won't be used anymore.
 	// Close allows to signal that the filesystem tree won't be used anymore.
 	// For Context implementations using a temporary directory, it is recommended to
 	// For Context implementations using a temporary directory, it is recommended to
 	// delete the temporary directory in Close().
 	// delete the temporary directory in Close().
@@ -110,6 +109,6 @@ type ROLayer interface {
 // RWLayer is active layer that can be read/modified
 // RWLayer is active layer that can be read/modified
 type RWLayer interface {
 type RWLayer interface {
 	Release() error
 	Release() error
-	Root() containerfs.ContainerFS
+	Root() string
 	Commit() (ROLayer, error)
 	Commit() (ROLayer, error)
 }
 }

+ 1 - 1
builder/dockerfile/copy.go

@@ -38,7 +38,7 @@ type pathCache interface {
 // copyInfo is a data object which stores the metadata about each source file in
 // copyInfo is a data object which stores the metadata about each source file in
 // a copyInstruction
 // a copyInstruction
 type copyInfo struct {
 type copyInfo struct {
-	root         containerfs.ContainerFS
+	root         string
 	path         string
 	path         string
 	hash         string
 	hash         string
 	noDecompress bool
 	noDecompress bool

+ 2 - 3
builder/dockerfile/internals_test.go

@@ -14,7 +14,6 @@ import (
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/layer"
 	"github.com/docker/docker/layer"
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/go-connections/nat"
 	"github.com/docker/go-connections/nat"
 	"github.com/opencontainers/go-digest"
 	"github.com/opencontainers/go-digest"
 	"gotest.tools/v3/assert"
 	"gotest.tools/v3/assert"
@@ -183,8 +182,8 @@ func TestDeepCopyRunConfig(t *testing.T) {
 
 
 type MockRWLayer struct{}
 type MockRWLayer struct{}
 
 
-func (l *MockRWLayer) Release() error                { return nil }
-func (l *MockRWLayer) Root() containerfs.ContainerFS { return "" }
+func (l *MockRWLayer) Release() error { return nil }
+func (l *MockRWLayer) Root() string   { return "" }
 func (l *MockRWLayer) Commit() (builder.ROLayer, error) {
 func (l *MockRWLayer) Commit() (builder.ROLayer, error) {
 	return &MockROLayer{
 	return &MockROLayer{
 		diffID: layer.DiffID(digest.Digest("sha256:1234")),
 		diffID: layer.DiffID(digest.Digest("sha256:1234")),

+ 1 - 2
builder/dockerfile/mockbackend_test.go

@@ -13,7 +13,6 @@ import (
 	containerpkg "github.com/docker/docker/container"
 	containerpkg "github.com/docker/docker/container"
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/layer"
 	"github.com/docker/docker/layer"
-	"github.com/docker/docker/pkg/containerfs"
 )
 )
 
 
 // MockBackend implements the builder.Backend interface for unit testing
 // MockBackend implements the builder.Backend interface for unit testing
@@ -143,6 +142,6 @@ func (l *mockRWLayer) Commit() (builder.ROLayer, error) {
 	return nil, nil
 	return nil, nil
 }
 }
 
 
-func (l *mockRWLayer) Root() containerfs.ContainerFS {
+func (l *mockRWLayer) Root() string {
 	return ""
 	return ""
 }
 }

+ 3 - 3
builder/remotecontext/archive.go

@@ -15,7 +15,7 @@ import (
 )
 )
 
 
 type archiveContext struct {
 type archiveContext struct {
-	root containerfs.ContainerFS
+	root string
 	sums tarsum.FileInfoSums
 	sums tarsum.FileInfoSums
 }
 }
 
 
@@ -82,7 +82,7 @@ func FromArchive(tarStream io.Reader) (builder.Source, error) {
 	return tsc, nil
 	return tsc, nil
 }
 }
 
 
-func (c *archiveContext) Root() containerfs.ContainerFS {
+func (c *archiveContext) Root() string {
 	return c.root
 	return c.root
 }
 }
 
 
@@ -115,7 +115,7 @@ func (c *archiveContext) Hash(path string) (string, error) {
 	return path, nil // backwards compat TODO: see if really needed
 	return path, nil // backwards compat TODO: see if really needed
 }
 }
 
 
-func normalize(path string, root containerfs.ContainerFS) (cleanPath, fullPath string, err error) {
+func normalize(path string, root string) (cleanPath, fullPath string, err error) {
 	cleanPath = filepath.Clean(string(filepath.Separator) + path)[1:]
 	cleanPath = filepath.Clean(string(filepath.Separator) + path)[1:]
 	fullPath, err = containerfs.ResolveScopedPath(root, path)
 	fullPath, err = containerfs.ResolveScopedPath(root, path)
 	if err != nil {
 	if err != nil {

+ 2 - 3
builder/remotecontext/detect_test.go

@@ -9,7 +9,6 @@ import (
 	"testing"
 	"testing"
 
 
 	"github.com/docker/docker/builder"
 	"github.com/docker/docker/builder"
-	"github.com/docker/docker/pkg/containerfs"
 )
 )
 
 
 const (
 const (
@@ -105,14 +104,14 @@ func TestProcessShouldLeaveAllFiles(t *testing.T) {
 
 
 // TODO: remove after moving to a separate pkg
 // TODO: remove after moving to a separate pkg
 type stubRemote struct {
 type stubRemote struct {
-	root containerfs.ContainerFS
+	root string
 }
 }
 
 
 func (r *stubRemote) Hash(path string) (string, error) {
 func (r *stubRemote) Hash(path string) (string, error) {
 	return "", errors.New("not implemented")
 	return "", errors.New("not implemented")
 }
 }
 
 
-func (r *stubRemote) Root() containerfs.ContainerFS {
+func (r *stubRemote) Root() string {
 	return r.root
 	return r.root
 }
 }
 func (r *stubRemote) Close() error {
 func (r *stubRemote) Close() error {

+ 4 - 5
builder/remotecontext/lazycontext.go

@@ -8,7 +8,6 @@ import (
 	"strings"
 	"strings"
 
 
 	"github.com/docker/docker/builder"
 	"github.com/docker/docker/builder"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/pools"
 	"github.com/docker/docker/pkg/pools"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
@@ -16,7 +15,7 @@ import (
 // NewLazySource creates a new LazyContext. LazyContext defines a hashed build
 // NewLazySource creates a new LazyContext. LazyContext defines a hashed build
 // context based on a root directory. Individual files are hashed first time
 // context based on a root directory. Individual files are hashed first time
 // they are asked. It is not safe to call methods of LazyContext concurrently.
 // they are asked. It is not safe to call methods of LazyContext concurrently.
-func NewLazySource(root containerfs.ContainerFS) (builder.Source, error) {
+func NewLazySource(root string) (builder.Source, error) {
 	return &lazySource{
 	return &lazySource{
 		root: root,
 		root: root,
 		sums: make(map[string]string),
 		sums: make(map[string]string),
@@ -24,11 +23,11 @@ func NewLazySource(root containerfs.ContainerFS) (builder.Source, error) {
 }
 }
 
 
 type lazySource struct {
 type lazySource struct {
-	root containerfs.ContainerFS
+	root string
 	sums map[string]string
 	sums map[string]string
 }
 }
 
 
-func (c *lazySource) Root() containerfs.ContainerFS {
+func (c *lazySource) Root() string {
 	return c.root
 	return c.root
 }
 }
 
 
@@ -88,7 +87,7 @@ func (c *lazySource) prepareHash(relPath string, fi os.FileInfo) (string, error)
 
 
 // Rel makes a path relative to base path. Same as `filepath.Rel` but can also
 // Rel makes a path relative to base path. Same as `filepath.Rel` but can also
 // handle UUID paths in windows.
 // handle UUID paths in windows.
-func Rel(basepath containerfs.ContainerFS, targpath string) (string, error) {
+func Rel(basepath string, targpath string) (string, error) {
 	// filepath.Rel can't handle UUID paths in windows
 	// filepath.Rel can't handle UUID paths in windows
 	if runtime.GOOS == "windows" {
 	if runtime.GOOS == "windows" {
 		pfx := basepath + `\`
 		pfx := basepath + `\`

+ 2 - 3
builder/remotecontext/tarsum.go

@@ -5,7 +5,6 @@ import (
 	"path/filepath"
 	"path/filepath"
 	"sync"
 	"sync"
 
 
-	"github.com/docker/docker/pkg/containerfs"
 	iradix "github.com/hashicorp/go-immutable-radix"
 	iradix "github.com/hashicorp/go-immutable-radix"
 	"github.com/opencontainers/go-digest"
 	"github.com/opencontainers/go-digest"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
@@ -19,7 +18,7 @@ type hashed interface {
 // CachableSource is a source that contains cache records for its contents
 // CachableSource is a source that contains cache records for its contents
 type CachableSource struct {
 type CachableSource struct {
 	mu   sync.Mutex
 	mu   sync.Mutex
-	root containerfs.ContainerFS
+	root string
 	tree *iradix.Tree
 	tree *iradix.Tree
 	txn  *iradix.Txn
 	txn  *iradix.Txn
 }
 }
@@ -145,7 +144,7 @@ func (cs *CachableSource) Hash(path string) (string, error) {
 }
 }
 
 
 // Root returns a root directory for the source
 // Root returns a root directory for the source
-func (cs *CachableSource) Root() containerfs.ContainerFS {
+func (cs *CachableSource) Root() string {
 	return cs.root
 	return cs.root
 }
 }
 
 

+ 4 - 4
container/container.go

@@ -61,10 +61,10 @@ type ExitStatus struct {
 type Container struct {
 type Container struct {
 	StreamConfig *stream.Config
 	StreamConfig *stream.Config
 	// embed for Container to support states directly.
 	// embed for Container to support states directly.
-	*State          `json:"State"`          // Needed for Engine API version <= 1.11
-	Root            string                  `json:"-"` // Path to the "home" of the container, including metadata.
-	BaseFS          containerfs.ContainerFS `json:"-"` // interface containing graphdriver mount
-	RWLayer         layer.RWLayer           `json:"-"`
+	*State          `json:"State"` // Needed for Engine API version <= 1.11
+	Root            string         `json:"-"` // Path to the "home" of the container, including metadata.
+	BaseFS          string         `json:"-"` // Path to the graphdriver mountpoint
+	RWLayer         layer.RWLayer  `json:"-"`
 	ID              string
 	ID              string
 	Created         time.Time
 	Created         time.Time
 	Managed         bool
 	Managed         bool

+ 2 - 3
daemon/daemon_unix.go

@@ -38,7 +38,6 @@ import (
 	"github.com/docker/docker/libnetwork/options"
 	"github.com/docker/docker/libnetwork/options"
 	lntypes "github.com/docker/docker/libnetwork/types"
 	lntypes "github.com/docker/docker/libnetwork/types"
 	"github.com/docker/docker/opts"
 	"github.com/docker/docker/opts"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/parsers"
 	"github.com/docker/docker/pkg/parsers"
 	"github.com/docker/docker/pkg/parsers/kernel"
 	"github.com/docker/docker/pkg/parsers/kernel"
@@ -1072,8 +1071,8 @@ func removeDefaultBridgeInterface() {
 	}
 	}
 }
 }
 
 
-func setupInitLayer(idMapping idtools.IdentityMapping) func(containerfs.ContainerFS) error {
-	return func(initPath containerfs.ContainerFS) error {
+func setupInitLayer(idMapping idtools.IdentityMapping) func(string) error {
+	return func(initPath string) error {
 		return initlayer.Setup(initPath, idMapping.RootPair())
 		return initlayer.Setup(initPath, idMapping.RootPair())
 	}
 	}
 }
 }

+ 1 - 2
daemon/daemon_windows.go

@@ -23,7 +23,6 @@ import (
 	winlibnetwork "github.com/docker/docker/libnetwork/drivers/windows"
 	winlibnetwork "github.com/docker/docker/libnetwork/drivers/windows"
 	"github.com/docker/docker/libnetwork/netlabel"
 	"github.com/docker/docker/libnetwork/netlabel"
 	"github.com/docker/docker/libnetwork/options"
 	"github.com/docker/docker/libnetwork/options"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/parsers"
 	"github.com/docker/docker/pkg/parsers"
 	"github.com/docker/docker/pkg/parsers/operatingsystem"
 	"github.com/docker/docker/pkg/parsers/operatingsystem"
@@ -64,7 +63,7 @@ func (daemon *Daemon) parseSecurityOpt(container *container.Container, hostConfi
 	return nil
 	return nil
 }
 }
 
 
-func setupInitLayer(idMapping idtools.IdentityMapping) func(containerfs.ContainerFS) error {
+func setupInitLayer(idMapping idtools.IdentityMapping) func(string) error {
 	return nil
 	return nil
 }
 }
 
 

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

@@ -351,7 +351,7 @@ func atomicRemove(source string) error {
 
 
 // Get returns the rootfs path for the id.
 // Get returns the rootfs path for the id.
 // This will mount the dir at its given path
 // This will mount the dir at its given path
-func (a *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
+func (a *Driver) Get(id, mountLabel string) (string, error) {
 	a.locker.Lock(id)
 	a.locker.Lock(id)
 	defer a.locker.Unlock(id)
 	defer a.locker.Unlock(id)
 	parents, err := a.getParentLayerPaths(id)
 	parents, err := a.getParentLayerPaths(id)

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

@@ -627,7 +627,7 @@ func (d *Driver) Remove(id string) error {
 }
 }
 
 
 // Get the requested filesystem id.
 // Get the requested filesystem id.
-func (d *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
+func (d *Driver) Get(id, mountLabel string) (string, error) {
 	dir := d.subvolumesDirID(id)
 	dir := d.subvolumesDirID(id)
 	st, err := os.Stat(dir)
 	st, err := os.Stat(dir)
 	if err != nil {
 	if err != nil {

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

@@ -10,7 +10,6 @@ import (
 	"strconv"
 	"strconv"
 
 
 	"github.com/docker/docker/daemon/graphdriver"
 	"github.com/docker/docker/daemon/graphdriver"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/devicemapper"
 	"github.com/docker/docker/pkg/devicemapper"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	units "github.com/docker/go-units"
 	units "github.com/docker/go-units"
@@ -175,7 +174,7 @@ func (d *Driver) Remove(id string) error {
 }
 }
 
 
 // Get mounts a device with given id into the root filesystem
 // Get mounts a device with given id into the root filesystem
-func (d *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
+func (d *Driver) Get(id, mountLabel string) (string, error) {
 	d.locker.Lock(id)
 	d.locker.Lock(id)
 	defer d.locker.Unlock(id)
 	defer d.locker.Unlock(id)
 	mp := path.Join(d.home, "mnt", id)
 	mp := path.Join(d.home, "mnt", id)

+ 1 - 2
daemon/graphdriver/driver.go

@@ -7,7 +7,6 @@ import (
 	"strings"
 	"strings"
 
 
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/plugingetter"
 	"github.com/docker/docker/pkg/plugingetter"
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
@@ -60,7 +59,7 @@ type ProtoDriver interface {
 	// Get returns the mountpoint for the layered filesystem referred
 	// Get returns the mountpoint for the layered filesystem referred
 	// to by this id. You can optionally specify a mountLabel or "".
 	// to by this id. You can optionally specify a mountLabel or "".
 	// Returns the absolute path to the mounted layered filesystem.
 	// Returns the absolute path to the mounted layered filesystem.
-	Get(id, mountLabel string) (fs containerfs.ContainerFS, err error)
+	Get(id, mountLabel string) (fs string, err error)
 	// Put releases the system resources for the specified id,
 	// Put releases the system resources for the specified id,
 	// e.g, unmounting layered filesystem.
 	// e.g, unmounting layered filesystem.
 	Put(id string) error
 	Put(id string) error

+ 1 - 1
daemon/graphdriver/fuse-overlayfs/fuseoverlayfs.go

@@ -303,7 +303,7 @@ func (d *Driver) Remove(id string) error {
 }
 }
 
 
 // Get creates and mounts the required file system for the given id and returns the mount path.
 // Get creates and mounts the required file system for the given id and returns the mount path.
-func (d *Driver) Get(id, mountLabel string) (_ containerfs.ContainerFS, retErr error) {
+func (d *Driver) Get(id, mountLabel string) (_ string, retErr error) {
 	d.locker.Lock(id)
 	d.locker.Lock(id)
 	defer d.locker.Unlock(id)
 	defer d.locker.Unlock(id)
 	dir := d.dir(id)
 	dir := d.dir(id)

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

@@ -339,7 +339,7 @@ func (d *Driver) Remove(id string) error {
 }
 }
 
 
 // Get creates and mounts the required file system for the given id and returns the mount path.
 // Get creates and mounts the required file system for the given id and returns the mount path.
-func (d *Driver) Get(id, mountLabel string) (_ containerfs.ContainerFS, err error) {
+func (d *Driver) Get(id, mountLabel string) (_ string, err error) {
 	d.locker.Lock(id)
 	d.locker.Lock(id)
 	defer d.locker.Unlock(id)
 	defer d.locker.Unlock(id)
 	dir := d.dir(id)
 	dir := d.dir(id)

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

@@ -513,7 +513,7 @@ func (d *Driver) Remove(id string) error {
 }
 }
 
 
 // Get creates and mounts the required file system for the given id and returns the mount path.
 // Get creates and mounts the required file system for the given id and returns the mount path.
-func (d *Driver) Get(id, mountLabel string) (_ containerfs.ContainerFS, retErr error) {
+func (d *Driver) Get(id, mountLabel string) (_ string, retErr error) {
 	d.locker.Lock(id)
 	d.locker.Lock(id)
 	defer d.locker.Unlock(id)
 	defer d.locker.Unlock(id)
 	dir := d.dir(id)
 	dir := d.dir(id)

+ 1 - 2
daemon/graphdriver/proxy.go

@@ -6,7 +6,6 @@ import (
 	"io"
 	"io"
 
 
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/plugingetter"
 	"github.com/docker/docker/pkg/plugingetter"
 	"github.com/docker/docker/pkg/plugins"
 	"github.com/docker/docker/pkg/plugins"
@@ -128,7 +127,7 @@ func (d *graphDriverProxy) Remove(id string) error {
 	return nil
 	return nil
 }
 }
 
 
-func (d *graphDriverProxy) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
+func (d *graphDriverProxy) Get(id, mountLabel string) (string, error) {
 	args := &graphDriverRequest{
 	args := &graphDriverRequest{
 		ID:         id,
 		ID:         id,
 		MountLabel: mountLabel,
 		MountLabel: mountLabel,

+ 1 - 1
daemon/graphdriver/vfs/driver.go

@@ -185,7 +185,7 @@ func (d *Driver) Remove(id string) error {
 }
 }
 
 
 // Get returns the directory for the given id.
 // Get returns the directory for the given id.
-func (d *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
+func (d *Driver) Get(id, mountLabel string) (string, error) {
 	dir := d.dir(id)
 	dir := d.dir(id)
 	if st, err := os.Stat(dir); err != nil {
 	if st, err := os.Stat(dir); err != nil {
 		return "", err
 		return "", err

+ 1 - 2
daemon/graphdriver/windows/windows.go

@@ -27,7 +27,6 @@ import (
 	"github.com/Microsoft/hcsshim/osversion"
 	"github.com/Microsoft/hcsshim/osversion"
 	"github.com/docker/docker/daemon/graphdriver"
 	"github.com/docker/docker/daemon/graphdriver"
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/ioutils"
 	"github.com/docker/docker/pkg/ioutils"
 	"github.com/docker/docker/pkg/longpath"
 	"github.com/docker/docker/pkg/longpath"
@@ -393,7 +392,7 @@ func (d *Driver) GetLayerPath(id string) (string, error) {
 }
 }
 
 
 // Get returns the rootfs path for the id. This will mount the dir at its given path.
 // Get returns the rootfs path for the id. This will mount the dir at its given path.
-func (d *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
+func (d *Driver) Get(id, mountLabel string) (string, error) {
 	logrus.Debugf("WindowsGraphDriver Get() id %s mountLabel %s", id, mountLabel)
 	logrus.Debugf("WindowsGraphDriver Get() id %s mountLabel %s", id, mountLabel)
 	var dir string
 	var dir string
 
 

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

@@ -14,7 +14,6 @@ import (
 	"time"
 	"time"
 
 
 	"github.com/docker/docker/daemon/graphdriver"
 	"github.com/docker/docker/daemon/graphdriver"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/parsers"
 	"github.com/docker/docker/pkg/parsers"
 	zfs "github.com/mistifyio/go-zfs"
 	zfs "github.com/mistifyio/go-zfs"
@@ -363,7 +362,7 @@ func (d *Driver) Remove(id string) error {
 }
 }
 
 
 // Get returns the mountpoint for the given id after creating the target directories if necessary.
 // Get returns the mountpoint for the given id after creating the target directories if necessary.
-func (d *Driver) Get(id, mountLabel string) (_ containerfs.ContainerFS, retErr error) {
+func (d *Driver) Get(id, mountLabel string) (_ string, retErr error) {
 	d.locker.Lock(id)
 	d.locker.Lock(id)
 	defer d.locker.Unlock(id)
 	defer d.locker.Unlock(id)
 	mountpoint := d.mountPath(id)
 	mountpoint := d.mountPath(id)

+ 2 - 3
daemon/images/image_builder.go

@@ -14,7 +14,6 @@ import (
 	"github.com/docker/docker/errdefs"
 	"github.com/docker/docker/errdefs"
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/image"
 	"github.com/docker/docker/layer"
 	"github.com/docker/docker/layer"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/progress"
 	"github.com/docker/docker/pkg/progress"
 	"github.com/docker/docker/pkg/streamformatter"
 	"github.com/docker/docker/pkg/streamformatter"
 	"github.com/docker/docker/pkg/stringid"
 	"github.com/docker/docker/pkg/stringid"
@@ -83,10 +82,10 @@ type rwLayer struct {
 	released   bool
 	released   bool
 	layerStore layer.Store
 	layerStore layer.Store
 	rwLayer    layer.RWLayer
 	rwLayer    layer.RWLayer
-	fs         containerfs.ContainerFS
+	fs         string
 }
 }
 
 
-func (l *rwLayer) Root() containerfs.ContainerFS {
+func (l *rwLayer) Root() string {
 	return l.fs
 	return l.fs
 }
 }
 
 

+ 1 - 2
daemon/initlayer/setup_unix.go

@@ -8,7 +8,6 @@ import (
 	"path/filepath"
 	"path/filepath"
 	"strings"
 	"strings"
 
 
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"golang.org/x/sys/unix"
 	"golang.org/x/sys/unix"
 )
 )
@@ -18,7 +17,7 @@ import (
 //
 //
 // This extra layer is used by all containers as the top-most ro layer. It protects
 // This extra layer is used by all containers as the top-most ro layer. It protects
 // the container from unwanted side-effects on the rw layer.
 // the container from unwanted side-effects on the rw layer.
-func Setup(initLayerFs containerfs.ContainerFS, rootIdentity idtools.Identity) error {
+func Setup(initLayerFs string, rootIdentity idtools.Identity) error {
 	// Since all paths are local to the container, we can just extract initLayerFs.Path()
 	// Since all paths are local to the container, we can just extract initLayerFs.Path()
 	initLayer := initLayerFs
 	initLayer := initLayerFs
 
 

+ 2 - 3
layer/layer.go

@@ -15,7 +15,6 @@ import (
 
 
 	"github.com/docker/distribution"
 	"github.com/docker/distribution"
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/opencontainers/go-digest"
 	"github.com/opencontainers/go-digest"
 	"github.com/sirupsen/logrus"
 	"github.com/sirupsen/logrus"
 )
 )
@@ -114,7 +113,7 @@ type RWLayer interface {
 
 
 	// Mount mounts the RWLayer and returns the filesystem path
 	// Mount mounts the RWLayer and returns the filesystem path
 	// to the writable layer.
 	// to the writable layer.
-	Mount(mountLabel string) (containerfs.ContainerFS, error)
+	Mount(mountLabel string) (string, error)
 
 
 	// Unmount unmounts the RWLayer. This should be called
 	// Unmount unmounts the RWLayer. This should be called
 	// for every mount. If there are multiple mount calls
 	// for every mount. If there are multiple mount calls
@@ -158,7 +157,7 @@ type Metadata struct {
 // writable mount. Changes made here will
 // writable mount. Changes made here will
 // not be included in the Tar stream of the
 // not be included in the Tar stream of the
 // RWLayer.
 // RWLayer.
-type MountInit func(root containerfs.ContainerFS) error
+type MountInit func(root string) error
 
 
 // CreateRWLayerOpts contains optional arguments to be passed to CreateRWLayer
 // CreateRWLayerOpts contains optional arguments to be passed to CreateRWLayer
 type CreateRWLayerOpts struct {
 type CreateRWLayerOpts struct {

+ 4 - 5
layer/layer_test.go

@@ -13,7 +13,6 @@ import (
 	"github.com/docker/docker/daemon/graphdriver"
 	"github.com/docker/docker/daemon/graphdriver"
 	"github.com/docker/docker/daemon/graphdriver/vfs"
 	"github.com/docker/docker/daemon/graphdriver/vfs"
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/idtools"
 	"github.com/docker/docker/pkg/stringid"
 	"github.com/docker/docker/pkg/stringid"
 	"github.com/opencontainers/go-digest"
 	"github.com/opencontainers/go-digest"
@@ -80,7 +79,7 @@ func newTestStore(t *testing.T) (Store, string, func()) {
 	}
 	}
 }
 }
 
 
-type layerInit func(root containerfs.ContainerFS) error
+type layerInit func(root string) error
 
 
 func createLayer(ls Store, parent ChainID, layerFunc layerInit) (Layer, error) {
 func createLayer(ls Store, parent ChainID, layerFunc layerInit) (Layer, error) {
 	containerID := stringid.GenerateRandomID()
 	containerID := stringid.GenerateRandomID()
@@ -121,7 +120,7 @@ func createLayer(ls Store, parent ChainID, layerFunc layerInit) (Layer, error) {
 }
 }
 
 
 type FileApplier interface {
 type FileApplier interface {
-	ApplyFile(root containerfs.ContainerFS) error
+	ApplyFile(root string) error
 }
 }
 
 
 type testFile struct {
 type testFile struct {
@@ -138,7 +137,7 @@ func newTestFile(name string, content []byte, perm os.FileMode) FileApplier {
 	}
 	}
 }
 }
 
 
-func (tf *testFile) ApplyFile(root containerfs.ContainerFS) error {
+func (tf *testFile) ApplyFile(root string) error {
 	fullPath := filepath.Join(root, tf.name)
 	fullPath := filepath.Join(root, tf.name)
 	if err := os.MkdirAll(filepath.Dir(fullPath), 0755); err != nil {
 	if err := os.MkdirAll(filepath.Dir(fullPath), 0755); err != nil {
 		return err
 		return err
@@ -153,7 +152,7 @@ func (tf *testFile) ApplyFile(root containerfs.ContainerFS) error {
 }
 }
 
 
 func initWithFiles(files ...FileApplier) layerInit {
 func initWithFiles(files ...FileApplier) layerInit {
-	return func(root containerfs.ContainerFS) error {
+	return func(root string) error {
 		for _, f := range files {
 		for _, f := range files {
 			if err := f.ApplyFile(root); err != nil {
 			if err := f.ApplyFile(root); err != nil {
 				return err
 				return err

+ 3 - 4
layer/mount_test.go

@@ -10,7 +10,6 @@ import (
 
 
 	"github.com/containerd/continuity/driver"
 	"github.com/containerd/continuity/driver"
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 )
 )
 
 
 func TestMountInit(t *testing.T) {
 func TestMountInit(t *testing.T) {
@@ -30,7 +29,7 @@ func TestMountInit(t *testing.T) {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 
 
-	mountInit := func(root containerfs.ContainerFS) error {
+	mountInit := func(root string) error {
 		return initfile.ApplyFile(root)
 		return initfile.ApplyFile(root)
 	}
 	}
 
 
@@ -90,7 +89,7 @@ func TestMountSize(t *testing.T) {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 
 
-	mountInit := func(root containerfs.ContainerFS) error {
+	mountInit := func(root string) error {
 		return newTestFile("file-init", contentInit, 0777).ApplyFile(root)
 		return newTestFile("file-init", contentInit, 0777).ApplyFile(root)
 	}
 	}
 	rwLayerOpts := &CreateRWLayerOpts{
 	rwLayerOpts := &CreateRWLayerOpts{
@@ -142,7 +141,7 @@ func TestMountChanges(t *testing.T) {
 		t.Fatal(err)
 		t.Fatal(err)
 	}
 	}
 
 
-	mountInit := func(root containerfs.ContainerFS) error {
+	mountInit := func(root string) error {
 		return initfile.ApplyFile(root)
 		return initfile.ApplyFile(root)
 	}
 	}
 	rwLayerOpts := &CreateRWLayerOpts{
 	rwLayerOpts := &CreateRWLayerOpts{

+ 1 - 2
layer/mounted_layer.go

@@ -5,7 +5,6 @@ import (
 	"sync"
 	"sync"
 
 
 	"github.com/docker/docker/pkg/archive"
 	"github.com/docker/docker/pkg/archive"
-	"github.com/docker/docker/pkg/containerfs"
 )
 )
 
 
 type mountedLayer struct {
 type mountedLayer struct {
@@ -100,7 +99,7 @@ type referencedRWLayer struct {
 	*mountedLayer
 	*mountedLayer
 }
 }
 
 
-func (rl *referencedRWLayer) Mount(mountLabel string) (containerfs.ContainerFS, error) {
+func (rl *referencedRWLayer) Mount(mountLabel string) (string, error) {
 	return rl.layerStore.driver.Get(rl.mountedLayer.mountID, mountLabel)
 	return rl.layerStore.driver.Get(rl.mountedLayer.mountID, mountLabel)
 }
 }
 
 

+ 0 - 3
pkg/containerfs/containerfs.go

@@ -6,9 +6,6 @@ import (
 	"github.com/moby/sys/symlink"
 	"github.com/moby/sys/symlink"
 )
 )
 
 
-// ContainerFS is that represents a root file system
-type ContainerFS = string
-
 // ResolveScopedPath evaluates the given path scoped to the root.
 // ResolveScopedPath evaluates the given path scoped to the root.
 // For example, if root=/a, and path=/b/c, then this function would return /a/b/c.
 // For example, if root=/a, and path=/b/c, then this function would return /a/b/c.
 func ResolveScopedPath(root, path string) (string, error) {
 func ResolveScopedPath(root, path string) (string, error) {