Fix unmounts out of container export funcs

Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)
Upstream-commit: 02fdc194fc726ef2ce1fa4303e121abd277f8d32
Component: engine
This commit is contained in:
Michael Crosby
2014-02-03 15:56:58 -08:00
parent 0cee6d0d01
commit 8f61d5e8bf

View File

@ -1416,9 +1416,12 @@ func (container *Container) ExportRw() (archive.Archive, error) {
if container.runtime == nil {
return nil, fmt.Errorf("Can't load storage driver for unregistered container %s", container.ID)
}
defer container.Unmount()
return container.runtime.Diff(container)
archive, err := container.runtime.Diff(container)
if err != nil {
container.Unmount()
return nil, err
}
return EofReader(archive, func() { container.Unmount() }), nil
}
func (container *Container) Export() (archive.Archive, error) {
@ -1428,6 +1431,7 @@ func (container *Container) Export() (archive.Archive, error) {
archive, err := archive.Tar(container.basefs, archive.Uncompressed)
if err != nil {
container.Unmount()
return nil, err
}
return EofReader(archive, func() { container.Unmount() }), nil