summaryrefslogtreecommitdiff
path: root/pkg/btrfsmisc/fsck.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/btrfsmisc/fsck.go')
-rw-r--r--pkg/btrfsmisc/fsck.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/pkg/btrfsmisc/fsck.go b/pkg/btrfsmisc/fsck.go
index e44dcb6..81317ce 100644
--- a/pkg/btrfsmisc/fsck.go
+++ b/pkg/btrfsmisc/fsck.go
@@ -11,7 +11,7 @@ import (
// ScanForNodes mimics btrfs-progs
// cmds/rescue-chunk-recover.c:scan_one_device(), except it doesn't do
// anything but log when it finds a node.
-func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrfs.PhysicalAddr, btrfs.Node], error)) error {
+func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrfs.PhysicalAddr, btrfs.Node], error), prog func(btrfs.PhysicalAddr)) error {
devSize, err := dev.Size()
if err != nil {
return err
@@ -29,6 +29,10 @@ func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrf
continue
}
+ if prog != nil {
+ prog(pos)
+ }
+
// read
if _, err := dev.ReadAt(nodeBuf, pos); err != nil {