summaryrefslogtreecommitdiff
path: root/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2022-07-16 16:12:08 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2022-07-16 20:10:43 -0600
commit8edb8ab9ac42e9bfb851b3bc41509e782555f053 (patch)
tree006b961b6f7a67184f28c86f185419a330d8fb88 /lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
parent5889f1fa2818f34025ca6e2feecb26928c6e6341 (diff)
rethink the SumRun interface to fit diskio.Sequence
Diffstat (limited to 'lib/btrfsprogs/btrfsinspect/scanforextents/scan.go')
-rw-r--r--lib/btrfsprogs/btrfsinspect/scanforextents/scan.go13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go b/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
index 8920dfa..77a4ed9 100644
--- a/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
+++ b/lib/btrfsprogs/btrfsinspect/scanforextents/scan.go
@@ -25,10 +25,12 @@ func ScanForExtents(ctx context.Context, fs *btrfs.FS, blockgroups *BlockGroupTr
dlog.Info(ctx, "Reverse-indexing and validating logical sums...")
var totalSums int
- _ = sums.WalkLogical(func(btrfsvol.LogicalAddr, ShortSum) error {
+ if err := sums.WalkLogical(ctx, func(btrfsvol.LogicalAddr, ShortSum) error {
totalSums++
return nil
- })
+ }); err != nil {
+ return err
+ }
sum2laddrs := make(map[ShortSum][]btrfsvol.LogicalAddr)
var curSum int
lastPct := -1
@@ -39,10 +41,7 @@ func ScanForExtents(ctx context.Context, fs *btrfs.FS, blockgroups *BlockGroupTr
lastPct = pct
}
}
- if err := sums.WalkLogical(func(laddr btrfsvol.LogicalAddr, expShortSum ShortSum) error {
- if err := ctx.Err(); err != nil {
- return err
- }
+ if err := sums.WalkLogical(ctx, func(laddr btrfsvol.LogicalAddr, expShortSum ShortSum) error {
progress(curSum)
curSum++
readSum, err := ChecksumLogical(fs, sb.ChecksumType, laddr)
@@ -53,7 +52,7 @@ func ScanForExtents(ctx context.Context, fs *btrfs.FS, blockgroups *BlockGroupTr
}
return err
}
- readShortSum := ShortSum(readSum[:sums.ChecksumSize])
+ readShortSum := ShortSum(readSum[:len(expShortSum)])
if readShortSum != expShortSum {
return fmt.Errorf("checksum mismatch at laddr=%v: CSUM_TREE=%x != read=%x",
laddr, []byte(expShortSum), []byte(readShortSum))