diff --git a/internal/rbd/clone.go b/internal/rbd/clone.go index d4a266796..9d6a5e908 100644 --- a/internal/rbd/clone.go +++ b/internal/rbd/clone.go @@ -176,6 +176,13 @@ func (rv *rbdVolume) createCloneFromImage(ctx context.Context, parentVol *rbdVol } defer func() { + if err != nil || errClone != nil { + cErr := cleanUpSnapshot(ctx, tempClone, cloneSnap, rv, rv.conn.Creds) + if cErr != nil { + util.ErrorLog(ctx, "failed to cleanup image %s or snapshot %s: %v", cloneSnap, tempClone, cErr) + } + } + if err != nil || errFlatten != nil { if !errors.Is(errFlatten, ErrFlattenInProgress) { // cleanup snapshot @@ -185,12 +192,6 @@ func (rv *rbdVolume) createCloneFromImage(ctx context.Context, parentVol *rbdVol } } } - if err != nil || errClone != nil { - cErr := cleanUpSnapshot(ctx, tempClone, cloneSnap, rv, rv.conn.Creds) - if cErr != nil { - util.ErrorLog(ctx, "failed to cleanup image %s or snapshot %s: %v", cloneSnap, tempClone, cErr) - } - } }() // flatten clone errFlatten = tempClone.flattenRbdImage(ctx, rv.conn.Creds, false, rbdHardMaxCloneDepth, rbdSoftMaxCloneDepth)