diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-16 16:12:08 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2022-07-16 20:10:43 -0600 |
commit | 8edb8ab9ac42e9bfb851b3bc41509e782555f053 (patch) | |
tree | 006b961b6f7a67184f28c86f185419a330d8fb88 /lib/btrfsprogs/btrfsinspect/scanforextents/scan.go | |
parent | 5889f1fa2818f34025ca6e2feecb26928c6e6341 (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.go | 13 |
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)) |