mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #20513 from tonistiigi/retake-ref
Fix releasing reference on deletion error
This commit is contained in:
commit
e51457eea8
2 changed files with 10 additions and 0 deletions
|
@ -498,18 +498,21 @@ func (ls *layerStore) ReleaseRWLayer(l RWLayer) ([]Metadata, error) {
|
||||||
|
|
||||||
if err := ls.driver.Remove(m.mountID); err != nil {
|
if err := ls.driver.Remove(m.mountID); err != nil {
|
||||||
logrus.Errorf("Error removing mounted layer %s: %s", m.name, err)
|
logrus.Errorf("Error removing mounted layer %s: %s", m.name, err)
|
||||||
|
m.retakeReference(l)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.initID != "" {
|
if m.initID != "" {
|
||||||
if err := ls.driver.Remove(m.initID); err != nil {
|
if err := ls.driver.Remove(m.initID); err != nil {
|
||||||
logrus.Errorf("Error removing init layer %s: %s", m.name, err)
|
logrus.Errorf("Error removing init layer %s: %s", m.name, err)
|
||||||
|
m.retakeReference(l)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := ls.store.RemoveMount(m.name); err != nil {
|
if err := ls.store.RemoveMount(m.name); err != nil {
|
||||||
logrus.Errorf("Error removing mount metadata: %s: %s", m.name, err)
|
logrus.Errorf("Error removing mount metadata: %s: %s", m.name, err)
|
||||||
|
m.retakeReference(l)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,13 @@ func (ml *mountedLayer) deleteReference(ref RWLayer) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (ml *mountedLayer) retakeReference(r RWLayer) {
|
||||||
|
if ref, ok := r.(*referencedRWLayer); ok {
|
||||||
|
ref.activityCount = 0
|
||||||
|
ml.references[ref] = ref
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type referencedRWLayer struct {
|
type referencedRWLayer struct {
|
||||||
*mountedLayer
|
*mountedLayer
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue