diff --git a/daemon/daemon.go b/daemon/daemon.go index 091d5f4f8a..84a6ec6ba9 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -20,6 +20,7 @@ import ( "sync" "time" + "github.com/docker/docker/pkg/fileutils" "google.golang.org/grpc" "github.com/containerd/containerd" @@ -765,7 +766,7 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S if err != nil { return nil, fmt.Errorf("Unable to get the TempDir under %s: %s", config.Root, err) } - realTmp, err := getRealPath(tmp) + realTmp, err := fileutils.ReadSymlinkedDirectory(tmp) if err != nil { return nil, fmt.Errorf("Unable to get the full path to the TempDir (%s): %s", tmp, err) } @@ -1447,7 +1448,7 @@ func CreateDaemonRoot(config *config.Config) error { if _, err := os.Stat(config.Root); err != nil && os.IsNotExist(err) { realRoot = config.Root } else { - realRoot, err = getRealPath(config.Root) + realRoot, err = fileutils.ReadSymlinkedDirectory(config.Root) if err != nil { return fmt.Errorf("Unable to get the full path to root (%s): %s", config.Root, err) } diff --git a/daemon/daemon_linux.go b/daemon/daemon_linux.go index 2038487415..38349c8e59 100644 --- a/daemon/daemon_linux.go +++ b/daemon/daemon_linux.go @@ -9,7 +9,6 @@ import ( "strings" "github.com/docker/docker/daemon/config" - "github.com/docker/docker/pkg/fileutils" "github.com/docker/docker/pkg/mount" "github.com/docker/libnetwork/resolvconf" "github.com/pkg/errors" @@ -123,10 +122,6 @@ func getCleanPatterns(id string) (regexps []*regexp.Regexp) { return } -func getRealPath(path string) (string, error) { - return fileutils.ReadSymlinkedDirectory(path) -} - func shouldUnmountRoot(root string, info *mount.Info) bool { if !strings.HasSuffix(root, info.Root) { return false diff --git a/daemon/daemon_windows.go b/daemon/daemon_windows.go index f6d0f8c6ce..8b742be186 100644 --- a/daemon/daemon_windows.go +++ b/daemon/daemon_windows.go @@ -12,7 +12,6 @@ import ( "github.com/docker/docker/container" "github.com/docker/docker/daemon/config" "github.com/docker/docker/pkg/containerfs" - "github.com/docker/docker/pkg/fileutils" "github.com/docker/docker/pkg/idtools" "github.com/docker/docker/pkg/parsers" "github.com/docker/docker/pkg/platform" @@ -651,16 +650,6 @@ func (daemon *Daemon) setupSeccompProfile() error { return nil } -func getRealPath(path string) (string, error) { - if system.IsIoTCore() { - // Due to https://github.com/golang/go/issues/20506, path expansion - // does not work correctly on the default IoT Core configuration. - // TODO @darrenstahlmsft remove this once golang/go/20506 is fixed - return path, nil - } - return fileutils.ReadSymlinkedDirectory(path) -} - func (daemon *Daemon) loadRuntimes() error { return nil } diff --git a/pkg/system/syscall_windows.go b/pkg/system/syscall_windows.go index 4ae92fa6c7..525c9863dc 100644 --- a/pkg/system/syscall_windows.go +++ b/pkg/system/syscall_windows.go @@ -120,8 +120,6 @@ func IsWindowsClient() bool { // IsIoTCore returns true if the currently running image is based off of // Windows 10 IoT Core. -// @engine maintainers - this function should not be removed or modified as it -// is used to enforce licensing restrictions on Windows. func IsIoTCore() bool { var returnedProductType uint32 r1, _, err := procGetProductInfo.Call(6, 1, 0, 0, uintptr(unsafe.Pointer(&returnedProductType)))