diff --git a/internal/restorer/filerestorer.go b/internal/restorer/filerestorer.go
index 75a19b4fb..3bb7489ba 100644
--- a/internal/restorer/filerestorer.go
+++ b/internal/restorer/filerestorer.go
@@ -181,6 +181,8 @@ func (r *fileRestorer) restoreFiles(ctx context.Context) error {
 	wg.Go(func() error {
 		for _, id := range packOrder {
 			pack := packs[id]
+			// allow garbage collection of packInfo
+			delete(packs, id)
 			select {
 			case <-ctx.Done():
 				return ctx.Err()