Merge pull request #8165 from duglin/Issue7309

If the Rename during an image delete fails, just delete the original dir  - Issue #7309
Upstream-commit: 437fa0650e6dcd972f153758429395b63109016f
Component: engine
This commit is contained in:
Michael Crosby
2014-09-23 10:28:48 -07:00

View File

@ -302,13 +302,17 @@ func (graph *Graph) Delete(name string) error {
return err
}
tmp, err := graph.Mktemp("")
if err != nil {
return err
}
graph.idIndex.Delete(id)
err = os.Rename(graph.ImageRoot(id), tmp)
if err != nil {
return err
if err == nil {
err = os.Rename(graph.ImageRoot(id), tmp)
// On err make tmp point to old dir and cleanup unused tmp dir
if err != nil {
os.RemoveAll(tmp)
tmp = graph.ImageRoot(id)
}
} else {
// On err make tmp point to old dir for cleanup
tmp = graph.ImageRoot(id)
}
// Remove rootfs data from the driver
graph.driver.Remove(id)