diff options
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect/scanforextents/scan.go')
-rw-r--r-- | lib/btrfsprogs/btrfsinspect/scanforextents/scan.go | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go b/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go index 12ade04..3aeb05a 100644 --- a/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go +++ b/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go @@ -21,11 +21,12 @@ import ( func ScanForExtents(ctx context.Context, fs *btrfs.FS, blockgroups map[btrfsvol.LogicalAddr]BlockGroup, sums AllSums) error { dlog.Info(ctx, "Pairing up blockgroups and sums...") bgSums := make(map[btrfsvol.LogicalAddr][]SumRun[btrfsvol.LogicalAddr]) - for _, blockgroup := range blockgroups { + for i, bgLAddr := range maps.SortedKeys(blockgroups) { + blockgroup := blockgroups[bgLAddr] for laddr := blockgroup.LAddr; laddr < blockgroup.LAddr.Add(blockgroup.Size); { - run, ok := sums.RunForLAddr(laddr) + run, next, ok := sums.RunForLAddr(laddr) if !ok { - laddr += csumBlockSize + laddr = next continue } off := int((laddr-run.Addr)/csumBlockSize) * run.ChecksumSize @@ -40,7 +41,8 @@ func ScanForExtents(ctx context.Context, fs *btrfs.FS, blockgroups map[btrfsvol. }) laddr = laddr.Add(deltaAddr) } - return nil + dlog.Infof(ctx, "... (%v/%v) blockgroup[laddr=%v] has %v runs", + i+1, len(blockgroups), bgLAddr, len(bgSums[blockgroup.LAddr])) } dlog.Info(ctx, "... done pairing") |