diff --git a/daemon/containerd/service.go b/daemon/containerd/service.go index 2604daec29..17ca48fdca 100644 --- a/daemon/containerd/service.go +++ b/daemon/containerd/service.go @@ -81,7 +81,6 @@ func (i *ImageService) Cleanup() error { // GraphDriverName returns the name of the graph drvier // moved from Daemon.GraphDriverName, used by: // - newContainer -// - to report an error in Daemon.Mount(container) func (i *ImageService) GraphDriverName() string { return "" } diff --git a/daemon/daemon.go b/daemon/daemon.go index e9c3765042..b73d9e76d2 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -239,29 +239,25 @@ func (daemon *Daemon) restore() error { log.WithError(err).Error("failed to load container") return } - if !system.IsOSSupported(c.OS) { - log.Errorf("failed to load container: %s (%q)", system.ErrNotSupportedOperatingSystem, c.OS) + if c.Driver != daemon.graphDriver { + // Ignore the container if it wasn't created with the current storage-driver + log.Debugf("not restoring container because it was created with another storage driver (%s)", c.Driver) return } - // Ignore the container if it does not support the current driver being used by the graph - if (c.Driver == "" && daemon.graphDriver == "aufs") || c.Driver == daemon.graphDriver { - rwlayer, err := daemon.imageService.GetLayerByID(c.ID) - if err != nil { - log.WithError(err).Error("failed to load container mount") - return - } - c.RWLayer = rwlayer - log.WithFields(logrus.Fields{ - "running": c.IsRunning(), - "paused": c.IsPaused(), - }).Debug("loaded container") - - mapLock.Lock() - containers[c.ID] = c - mapLock.Unlock() - } else { - log.Debugf("cannot load container because it was created with another storage driver") + rwlayer, err := daemon.imageService.GetLayerByID(c.ID) + if err != nil { + log.WithError(err).Error("failed to load container mount") + return } + c.RWLayer = rwlayer + log.WithFields(logrus.Fields{ + "running": c.IsRunning(), + "paused": c.IsPaused(), + }).Debug("loaded container") + + mapLock.Lock() + containers[c.ID] = c + mapLock.Unlock() }(v.Name()) } group.Wait() @@ -1277,8 +1273,8 @@ func (daemon *Daemon) Mount(container *container.Container) error { // on non-Windows operating systems. if runtime.GOOS != "windows" { daemon.Unmount(container) - return fmt.Errorf("Error: driver %s is returning inconsistent paths for container %s ('%s' then '%s')", - daemon.imageService.GraphDriverName(), container.ID, container.BaseFS, dir) + return fmt.Errorf("driver %s is returning inconsistent paths for container %s ('%s' then '%s')", + container.Driver, container.ID, container.BaseFS, dir) } } container.BaseFS = dir // TODO: combine these fields diff --git a/daemon/images/service.go b/daemon/images/service.go index c23e878cf3..461cb7cb82 100644 --- a/daemon/images/service.go +++ b/daemon/images/service.go @@ -175,7 +175,6 @@ func (i *ImageService) Cleanup() error { // GraphDriverName returns the name of the graph drvier // moved from Daemon.GraphDriverName, used by: // - newContainer -// - to report an error in Daemon.Mount(container) func (i *ImageService) GraphDriverName() string { return i.layerStore.DriverName() }