0007-delete-try-to-delete-metadata-before-image-data.patch 2.7 KB
Newer Older
1
From a8d2579b95b9a7f18785e337a6db31938063ec50 Mon Sep 17 00:00:00 2001
O
overweight 已提交
2 3
From: LiFeng <lifeng68@huawei.com>
Date: Thu, 18 Apr 2019 05:04:18 -0400
4
Subject: [PATCH 07/39] delete: try to delete metadata before image data
O
overweight 已提交
5 6 7

Signed-off-by: LiFeng <lifeng68@huawei.com>
---
D
dogsheng 已提交
8
 .../github.com/containers/storage/layers.go   | 67 +++++++++----------
O
overweight 已提交
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
 1 file changed, 33 insertions(+), 34 deletions(-)

diff --git a/vendor/github.com/containers/storage/layers.go b/vendor/github.com/containers/storage/layers.go
index a6d90d3..0bb4b52 100644
--- a/vendor/github.com/containers/storage/layers.go
+++ b/vendor/github.com/containers/storage/layers.go
@@ -835,6 +835,7 @@ func (r *layerStore) tspath(id string) string {
 }
 
 func (r *layerStore) Delete(id string) error {
+	var err error
 	if !r.IsReadWrite() {
 		return errors.Wrapf(ErrStoreIsReadOnly, "not allowed to delete layers at %q", r.layerspath())
 	}
@@ -850,46 +851,44 @@ func (r *layerStore) Delete(id string) error {
 			return err
 		}
 	}
-	err := r.driver.Remove(id)
-	if err == nil {
-		os.Remove(r.tspath(id))
-		delete(r.byid, id)
-		r.idindex.Delete(id)
-		mountLabel := layer.MountLabel
-		if layer.MountPoint != "" {
-			delete(r.bymount, layer.MountPoint)
+	os.Remove(r.tspath(id))
+	delete(r.byid, id)
+	r.idindex.Delete(id)
+	mountLabel := layer.MountLabel
+	if layer.MountPoint != "" {
+		delete(r.bymount, layer.MountPoint)
+	}
+	toDeleteIndex := -1
+	for i, candidate := range r.layers {
+		if candidate.ID == id {
+			toDeleteIndex = i
+			break
 		}
-		toDeleteIndex := -1
-		for i, candidate := range r.layers {
-			if candidate.ID == id {
-				toDeleteIndex = i
-				break
-			}
-		}
-		if toDeleteIndex != -1 {
-			// delete the layer at toDeleteIndex
-			if toDeleteIndex == len(r.layers)-1 {
-				r.layers = r.layers[:len(r.layers)-1]
-			} else {
-				r.layers = append(r.layers[:toDeleteIndex], r.layers[toDeleteIndex+1:]...)
-			}
+	}
+	if toDeleteIndex != -1 {
+		// delete the layer at toDeleteIndex
+		if toDeleteIndex == len(r.layers)-1 {
+			r.layers = r.layers[:len(r.layers)-1]
+		} else {
+			r.layers = append(r.layers[:toDeleteIndex], r.layers[toDeleteIndex+1:]...)
 		}
-		if mountLabel != "" {
-			var found bool
-			for _, candidate := range r.layers {
-				if candidate.MountLabel == mountLabel {
-					found = true
-					break
-				}
-			}
-			if !found {
-				label.ReleaseLabel(mountLabel)
+	}
+	if mountLabel != "" {
+		var found bool
+		for _, candidate := range r.layers {
+			if candidate.MountLabel == mountLabel {
+				found = true
+				break
 			}
 		}
-		if err = r.Save(); err != nil {
-			return err
+		if !found {
+			label.ReleaseLabel(mountLabel)
 		}
 	}
+	if err = r.Save(); err != nil {
+		return err
+	}
+	err = r.driver.Remove(id)
 	return err
 }
 
-- 
D
dogsheng 已提交
103
2.19.1
O
overweight 已提交
104