Remove a redundant check

err must be nil at that point.

This also un-indents the success case, so that
it proceeds as a straight-line code.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
Miloslav Trmač 2022-02-22 00:35:21 +01:00
parent a85892a653
commit 7466f0d0df
1 changed files with 74 additions and 76 deletions

View File

@ -813,88 +813,86 @@ func (r *layerStore) Put(id string, parentLayer *Layer, names []string, mountLab
return nil, -1, err return nil, -1, err
} }
} }
if err == nil { layer = &Layer{
layer = &Layer{ ID: id,
ID: id, Parent: parent,
Parent: parent, Names: names,
Names: names, MountLabel: mountLabel,
MountLabel: mountLabel, Metadata: templateMetadata,
Metadata: templateMetadata, Created: time.Now().UTC(),
Created: time.Now().UTC(), CompressedDigest: templateCompressedDigest,
CompressedDigest: templateCompressedDigest, CompressedSize: templateCompressedSize,
CompressedSize: templateCompressedSize, UncompressedDigest: templateUncompressedDigest,
UncompressedDigest: templateUncompressedDigest, UncompressedSize: templateUncompressedSize,
UncompressedSize: templateUncompressedSize, CompressionType: templateCompressionType,
CompressionType: templateCompressionType, UIDs: templateUIDs,
UIDs: templateUIDs, GIDs: templateGIDs,
GIDs: templateGIDs, Flags: make(map[string]interface{}),
Flags: make(map[string]interface{}), UIDMap: copyIDMap(moreOptions.UIDMap),
UIDMap: copyIDMap(moreOptions.UIDMap), GIDMap: copyIDMap(moreOptions.GIDMap),
GIDMap: copyIDMap(moreOptions.GIDMap), BigDataNames: []string{},
BigDataNames: []string{}, }
} r.layers = append(r.layers, layer)
r.layers = append(r.layers, layer) r.idindex.Add(id)
r.idindex.Add(id) r.byid[id] = layer
r.byid[id] = layer for _, name := range names {
for _, name := range names { r.byname[name] = layer
r.byname[name] = layer }
} for flag, value := range flags {
for flag, value := range flags { layer.Flags[flag] = value
layer.Flags[flag] = value }
} savedIncompleteLayer := false
savedIncompleteLayer := false if diff != nil {
if diff != nil { layer.Flags[incompleteFlag] = true
layer.Flags[incompleteFlag] = true
err = r.Save()
if err != nil {
// We don't have a record of this layer, but at least
// try to clean it up underneath us.
if err2 := r.driver.Remove(id); err2 != nil {
logrus.Errorf("While recovering from a failure saving incomplete layer metadata, error deleting layer %#v: %v", id, err2)
}
return nil, -1, err
}
savedIncompleteLayer = true
size, err = r.applyDiffWithOptions(layer.ID, moreOptions, diff)
if err != nil {
if err2 := r.Delete(layer.ID); err2 != nil {
// Either a driver error or an error saving.
// We now have a layer that's been marked for
// deletion but which we failed to remove.
logrus.Errorf("While recovering from a failure applying layer diff, error deleting layer %#v: %v", layer.ID, err2)
}
return nil, -1, err
}
delete(layer.Flags, incompleteFlag)
} else {
// applyDiffWithOptions in the `diff != nil` case handles this bit for us
if layer.CompressedDigest != "" {
r.bycompressedsum[layer.CompressedDigest] = append(r.bycompressedsum[layer.CompressedDigest], layer.ID)
}
if layer.UncompressedDigest != "" {
r.byuncompressedsum[layer.UncompressedDigest] = append(r.byuncompressedsum[layer.UncompressedDigest], layer.ID)
}
}
err = r.Save() err = r.Save()
if err != nil { if err != nil {
if savedIncompleteLayer { // We don't have a record of this layer, but at least
if err2 := r.Delete(layer.ID); err2 != nil { // try to clean it up underneath us.
// Either a driver error or an error saving. if err2 := r.driver.Remove(id); err2 != nil {
// We now have a layer that's been marked for logrus.Errorf("While recovering from a failure saving incomplete layer metadata, error deleting layer %#v: %v", id, err2)
// deletion but which we failed to remove.
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v: %v", layer.ID, err2)
}
} else {
// We don't have a record of this layer, but at least
// try to clean it up underneath us.
if err2 := r.driver.Remove(id); err2 != nil {
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v in graph driver: %v", id, err2)
}
} }
return nil, -1, err return nil, -1, err
} }
layer = copyLayer(layer) savedIncompleteLayer = true
size, err = r.applyDiffWithOptions(layer.ID, moreOptions, diff)
if err != nil {
if err2 := r.Delete(layer.ID); err2 != nil {
// Either a driver error or an error saving.
// We now have a layer that's been marked for
// deletion but which we failed to remove.
logrus.Errorf("While recovering from a failure applying layer diff, error deleting layer %#v: %v", layer.ID, err2)
}
return nil, -1, err
}
delete(layer.Flags, incompleteFlag)
} else {
// applyDiffWithOptions in the `diff != nil` case handles this bit for us
if layer.CompressedDigest != "" {
r.bycompressedsum[layer.CompressedDigest] = append(r.bycompressedsum[layer.CompressedDigest], layer.ID)
}
if layer.UncompressedDigest != "" {
r.byuncompressedsum[layer.UncompressedDigest] = append(r.byuncompressedsum[layer.UncompressedDigest], layer.ID)
}
} }
err = r.Save()
if err != nil {
if savedIncompleteLayer {
if err2 := r.Delete(layer.ID); err2 != nil {
// Either a driver error or an error saving.
// We now have a layer that's been marked for
// deletion but which we failed to remove.
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v: %v", layer.ID, err2)
}
} else {
// We don't have a record of this layer, but at least
// try to clean it up underneath us.
if err2 := r.driver.Remove(id); err2 != nil {
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v in graph driver: %v", id, err2)
}
}
return nil, -1, err
}
layer = copyLayer(layer)
return layer, size, err return layer, size, err
} }