rootfs: fix the error handling of the createInitLayer

Signed-off-by: Iceber Gu <wei.cai-nat@daocloud.io>
This commit is contained in:
Iceber Gu 2021-03-15 12:47:33 +08:00
parent e231b955dd
commit 4e8b2f309a
No known key found for this signature in database
GPG Key ID: F1632F7124070DD4

View File

@ -67,7 +67,7 @@ func InitRootFS(ctx context.Context, name string, parent digest.Digest, readonly
return snapshotter.Prepare(ctx, name, parentS) return snapshotter.Prepare(ctx, name, parentS)
} }
func createInitLayer(ctx context.Context, parent, initName string, initFn func(string) error, snapshotter snapshots.Snapshotter, mounter Mounter) (string, error) { func createInitLayer(ctx context.Context, parent, initName string, initFn func(string) error, snapshotter snapshots.Snapshotter, mounter Mounter) (_ string, retErr error) {
initS := fmt.Sprintf("%s %s", parent, initName) initS := fmt.Sprintf("%s %s", parent, initName)
if _, err := snapshotter.Stat(ctx, initS); err == nil { if _, err := snapshotter.Stat(ctx, initS); err == nil {
return initS, nil return initS, nil
@ -87,7 +87,7 @@ func createInitLayer(ctx context.Context, parent, initName string, initFn func(s
} }
defer func() { defer func() {
if err != nil { if retErr != nil {
if rerr := snapshotter.Remove(ctx, td); rerr != nil { if rerr := snapshotter.Remove(ctx, td); rerr != nil {
log.G(ctx).Errorf("Failed to remove snapshot %s: %v", td, rerr) log.G(ctx).Errorf("Failed to remove snapshot %s: %v", td, rerr)
} }