Skip to content

Commit

Permalink
Compute diff from the upper dir of overlayfs-based snapshotter
Browse files Browse the repository at this point in the history
Signed-off-by: ktock <ktokunaga.mail@gmail.com>
  • Loading branch information
ktock committed Jul 14, 2021
1 parent 3ac0e10 commit 8745f20
Show file tree
Hide file tree
Showing 120 changed files with 4,782 additions and 692 deletions.
22 changes: 16 additions & 6 deletions cache/blobs.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
imagespecidentity "github.com/opencontainers/image-spec/identity"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"golang.org/x/sync/errgroup"
)

Expand Down Expand Up @@ -111,12 +112,21 @@ func computeBlobChain(ctx context.Context, sr *immutableRef, createIfNeeded bool
if release != nil {
defer release()
}
descr, err = sr.cm.Differ.Compare(ctx, lower, upper,
diff.WithMediaType(mediaType),
diff.WithReference(sr.ID()),
)
if err != nil {
return nil, err
if !isTypeWindows(sr) {
// Try optimized diff for overlayfs
descr, err = sr.computeOverlayBlob(ctx, lower, upper, mediaType, sr.ID())
if err != nil {
logrus.Errorf("failed to compute blob (%s) from diff of overlay snapshotter: %+v", sr.ID(), err)
}
}
if descr.Digest == "" {
descr, err = sr.cm.Differ.Compare(ctx, lower, upper,
diff.WithMediaType(mediaType),
diff.WithReference(sr.ID()),
)
if err != nil {
return nil, err
}
}
}

Expand Down
Loading

0 comments on commit 8745f20

Please sign in to comment.