Fix for issue #3786

This is a fix for the case that one mount is inside another mount and
docker can't then delete the resulting container.

Docker-DCO-1.1-Signed-off-by: Peter Waller <p@pwaller.net> (github: pwaller)
Upstream-commit: 32753c3d241c9238b2a34f61fd44399453d7b455
Component: engine
This commit is contained in:
Peter Waller
2014-01-27 17:19:38 +00:00
parent ebab9ce224
commit b28de2eada

View File

@ -1365,9 +1365,9 @@ func (container *Container) Unmount() error {
mounts = append(mounts, path.Join(root, r))
}
for _, m := range mounts {
if lastError := mount.Unmount(m); lastError != nil {
err = lastError
for i := len(mounts) - 1; i >= 0; i-- {
if lastError := mount.Unmount(mounts[i]); lastError != nil {
err = fmt.Errorf("Failed to umount %v: %v", mounts[i], lastError)
}
}
if err != nil {