diff --git a/hack/vendor.sh b/hack/vendor.sh index 2a85b5de..c92959a7 100755 --- a/hack/vendor.sh +++ b/hack/vendor.sh @@ -13,7 +13,7 @@ clone git github.com/gorilla/context master clone git golang.org/x/net master https://github.com/golang/net.git clone git github.com/go-check/check v1 -clone git github.com/docker/docker v1.10.1 +clone git github.com/docker/docker v1.10.2 clone git github.com/docker/engine-api v0.2.3 clone git github.com/docker/distribution 0f2d99b13ae0cfbcf118eff103e6e680b726b47e diff --git a/vendor/github.com/docker/docker/layer/layer_store.go b/vendor/github.com/docker/docker/layer/layer_store.go index 619c1a30..229ba6a3 100644 --- a/vendor/github.com/docker/docker/layer/layer_store.go +++ b/vendor/github.com/docker/docker/layer/layer_store.go @@ -498,18 +498,21 @@ func (ls *layerStore) ReleaseRWLayer(l RWLayer) ([]Metadata, error) { if err := ls.driver.Remove(m.mountID); err != nil { logrus.Errorf("Error removing mounted layer %s: %s", m.name, err) + m.retakeReference(l) return nil, err } if m.initID != "" { if err := ls.driver.Remove(m.initID); err != nil { logrus.Errorf("Error removing init layer %s: %s", m.name, err) + m.retakeReference(l) return nil, err } } if err := ls.store.RemoveMount(m.name); err != nil { logrus.Errorf("Error removing mount metadata: %s: %s", m.name, err) + m.retakeReference(l) return nil, err } diff --git a/vendor/github.com/docker/docker/layer/migration.go b/vendor/github.com/docker/docker/layer/migration.go index ac0f0065..b45c3109 100644 --- a/vendor/github.com/docker/docker/layer/migration.go +++ b/vendor/github.com/docker/docker/layer/migration.go @@ -127,6 +127,7 @@ func (ls *layerStore) checksumForGraphIDNoTarsplit(id, parent, newTarDataPath st } defer f.Close() mfz := gzip.NewWriter(f) + defer mfz.Close() metaPacker := storage.NewJSONPacker(mfz) packerCounter := &packSizeCounter{metaPacker, &size} diff --git a/vendor/github.com/docker/docker/layer/mounted_layer.go b/vendor/github.com/docker/docker/layer/mounted_layer.go index b3d65688..bf662e9a 100644 --- a/vendor/github.com/docker/docker/layer/mounted_layer.go +++ b/vendor/github.com/docker/docker/layer/mounted_layer.go @@ -96,6 +96,13 @@ func (ml *mountedLayer) deleteReference(ref RWLayer) error { return nil } +func (ml *mountedLayer) retakeReference(r RWLayer) { + if ref, ok := r.(*referencedRWLayer); ok { + ref.activityCount = 0 + ml.references[ref] = ref + } +} + type referencedRWLayer struct { *mountedLayer