From f4fc3cbb9709e914df9017f07b11092a28cb44b6 Mon Sep 17 00:00:00 2001 From: Doug Davis Date: Mon, 22 Sep 2014 07:47:20 -0700 Subject: [PATCH] if the Rename during an image delete fails, just delete the original dir Signed-off-by: Doug Davis Upstream-commit: 86a3a9a2822e5473816d5ced945b37fcc2131e1e Component: engine --- components/engine/graph/graph.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/components/engine/graph/graph.go b/components/engine/graph/graph.go index 84a3729789..f5e1bdbbcd 100644 --- a/components/engine/graph/graph.go +++ b/components/engine/graph/graph.go @@ -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)