From f2841d5298db4cf5e4d00423fb3580a4674f5205 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 25 Oct 2016 14:40:13 -0700 Subject: [PATCH] Fix overlay unmount for the root case MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In root case no mount call or reference count increment actually happens so don’t try to unmount. Signed-off-by: Tonis Tiigi Upstream-commit: e4349ad90114c741c729046f7749f0c2fde415c9 Component: engine --- components/engine/daemon/graphdriver/overlay/overlay.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/components/engine/daemon/graphdriver/overlay/overlay.go b/components/engine/daemon/graphdriver/overlay/overlay.go index ec3979d4bd..6ece488852 100644 --- a/components/engine/daemon/graphdriver/overlay/overlay.go +++ b/components/engine/daemon/graphdriver/overlay/overlay.go @@ -374,6 +374,10 @@ func (d *Driver) Get(id string, mountLabel string) (s string, err error) { // Put unmounts the mount path created for the give id. func (d *Driver) Put(id string) error { + // If id has a root, just return + if _, err := os.Stat(path.Join(d.dir(id), "root")); err == nil { + return nil + } mountpoint := path.Join(d.dir(id), "merged") if count := d.ctr.Decrement(mountpoint); count > 0 { return nil