Browse code

if the Rename during an image delete fails, just delete the original dir

Signed-off-by: Doug Davis <dug@us.ibm.com>

Doug Davis authored on 2014/09/22 23:47:20
Showing 1 changed files
... ...
@@ -302,13 +302,17 @@ func (graph *Graph) Delete(name string) error {
302 302
 		return err
303 303
 	}
304 304
 	tmp, err := graph.Mktemp("")
305
-	if err != nil {
306
-		return err
307
-	}
308 305
 	graph.idIndex.Delete(id)
309
-	err = os.Rename(graph.ImageRoot(id), tmp)
310
-	if err != nil {
311
-		return err
306
+	if err == nil {
307
+		err = os.Rename(graph.ImageRoot(id), tmp)
308
+		// On err make tmp point to old dir and cleanup unused tmp dir
309
+		if err != nil {
310
+			os.RemoveAll(tmp)
311
+			tmp = graph.ImageRoot(id)
312
+		}
313
+	} else {
314
+		// On err make tmp point to old dir for cleanup
315
+		tmp = graph.ImageRoot(id)
312 316
 	}
313 317
 	// Remove rootfs data from the driver
314 318
 	graph.driver.Remove(id)