summaryrefslogtreecommitdiff
path: root/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect/scanforextents/scan.go')
-rw-r--r--lib/btrfsprogs/btrfsinspect/scanforextents/scan.go10
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")