diff --git a/internal/checker/checker.go b/internal/checker/checker.go index 031e13807..d5e7fd1f8 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -146,11 +146,7 @@ func (c *Checker) LoadIndex(ctx context.Context, p *progress.Counter) (hints []e return hints, append(errs, err) } - err = c.repo.SetIndex(c.masterIndex) - if err != nil { - debug.Log("SetIndex returned error: %v", err) - errs = append(errs, err) - } + c.repo.SetIndex(c.masterIndex) // compute pack size using index entries c.packs, err = pack.Size(ctx, c.repo, false) diff --git a/internal/repository/repair_index.go b/internal/repository/repair_index.go index 770809254..c72dcfd00 100644 --- a/internal/repository/repair_index.go +++ b/internal/repository/repair_index.go @@ -52,10 +52,8 @@ func RepairIndex(ctx context.Context, repo *Repository, opts RepairIndexOptions, return err } - err = repo.SetIndex(mi) - if err != nil { - return err - } + repo.SetIndex(mi) + packSizeFromIndex, err = pack.Size(ctx, repo, false) if err != nil { return err diff --git a/internal/repository/repository.go b/internal/repository/repository.go index f7fd65c71..3dc248c5e 100644 --- a/internal/repository/repository.go +++ b/internal/repository/repository.go @@ -6,7 +6,6 @@ import ( "fmt" "io" "math" - "os" "runtime" "sort" "sync" @@ -586,9 +585,8 @@ func (r *Repository) ListPacksFromIndex(ctx context.Context, packs restic.IDSet) } // SetIndex instructs the repository to use the given index. -func (r *Repository) SetIndex(i restic.MasterIndex) error { +func (r *Repository) SetIndex(i restic.MasterIndex) { r.idx = i.(*index.MasterIndex) - return r.prepareCache() } func (r *Repository) clearIndex() { @@ -628,12 +626,8 @@ func (r *Repository) LoadIndex(ctx context.Context, p *progress.Counter) error { return errors.New("index uses feature not supported by repository version 1") } } - if ctx.Err() != nil { - return ctx.Err() - } - // remove index files from the cache which have been removed in the repo - return r.prepareCache() + return ctx.Err() } // createIndexFromPacks creates a new index by reading all given pack files (with sizes). @@ -699,33 +693,6 @@ func (r *Repository) createIndexFromPacks(ctx context.Context, packsize map[rest return invalid, nil } -// prepareCache initializes the local cache. indexIDs is the list of IDs of -// index files still present in the repo. -func (r *Repository) prepareCache() error { - if r.Cache == nil { - return nil - } - - indexIDs := r.idx.IDs() - debug.Log("prepare cache with %d index files", len(indexIDs)) - - // clear old index files - err := r.Cache.Clear(restic.IndexFile, indexIDs) - if err != nil { - fmt.Fprintf(os.Stderr, "error clearing index files in cache: %v\n", err) - } - - packs := r.idx.Packs(restic.NewIDSet()) - - // clear old packs - err = r.Cache.Clear(restic.PackFile, packs) - if err != nil { - fmt.Fprintf(os.Stderr, "error clearing pack files in cache: %v\n", err) - } - - return nil -} - // SearchKey finds a key with the supplied password, afterwards the config is // read and parsed. It tries at most maxKeys key files in the repo. func (r *Repository) SearchKey(ctx context.Context, password string, maxKeys int, keyHint string) error { diff --git a/internal/restic/repository.go b/internal/restic/repository.go index b18b036a7..ce8401b37 100644 --- a/internal/restic/repository.go +++ b/internal/restic/repository.go @@ -22,7 +22,7 @@ type Repository interface { Key() *crypto.Key LoadIndex(ctx context.Context, p *progress.Counter) error - SetIndex(mi MasterIndex) error + SetIndex(mi MasterIndex) LookupBlob(t BlobType, id ID) []PackedBlob LookupBlobSize(t BlobType, id ID) (size uint, exists bool)