summaryrefslogtreecommitdiff
path: root/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-16 21:43:41 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-16 21:43:41 -0600
commit35e80a0c76be663f5ba710c2884e9508afa58ce2 (patch)
tree555607919a5679b8c68a2d2c5800fa687bd5c05a /lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
parent2be1697ef0ec7ce1f364986a22ecdc404a6e7574 (diff)
fix, sorta
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")