From 68555944f694e941b9cac3f8349364ec965db2fb Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 12 Jul 2022 11:30:13 -0600 Subject: Don't let TreeWalk bail early, add TreeID in to TreePath --- cmd/btrfs-fsck/pass1.go | 14 ++++---------- cmd/btrfs-fsck/pass2.go | 4 ++-- 2 files changed, 6 insertions(+), 12 deletions(-) (limited to 'cmd/btrfs-fsck') diff --git a/cmd/btrfs-fsck/pass1.go b/cmd/btrfs-fsck/pass1.go index 0899cfc..c75e066 100644 --- a/cmd/btrfs-fsck/pass1.go +++ b/cmd/btrfs-fsck/pass1.go @@ -24,18 +24,12 @@ func pass1(ctx context.Context, fs *btrfs.FS, superblock *util.Ref[btrfsvol.Phys visitedNodes := make(map[btrfsvol.LogicalAddr]struct{}) btrfsutil.WalkAllTrees(fs, btrfsutil.WalkAllTreesHandler{ TreeWalkHandler: btrfs.TreeWalkHandler{ - Node: func(path btrfs.TreePath, node *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], err error) error { - if err != nil { - err = fmt.Errorf("%v: %w", path, err) - fmt.Printf("Pass 1: ... walk fs: error: %v\n", err) - } - if node != nil { - visitedNodes[node.Addr] = struct{}{} - } - return err + Node: func(path btrfs.TreePath, node *util.Ref[btrfsvol.LogicalAddr, btrfs.Node]) error { + visitedNodes[node.Addr] = struct{}{} + return nil }, }, - Err: func(err error) { + Err: func(err *btrfsutil.WalkError) { fmt.Printf("Pass 1: ... walk fs: error: %v\n", err) }, }) diff --git a/cmd/btrfs-fsck/pass2.go b/cmd/btrfs-fsck/pass2.go index 9256220..78bd2e5 100644 --- a/cmd/btrfs-fsck/pass2.go +++ b/cmd/btrfs-fsck/pass2.go @@ -19,12 +19,12 @@ func pass2(fs *btrfs.FS, foundNodes map[btrfsvol.LogicalAddr]struct{}) { visitedNodes := make(map[btrfsvol.LogicalAddr]struct{}) btrfsutil.WalkAllTrees(fs, btrfsutil.WalkAllTreesHandler{ TreeWalkHandler: btrfs.TreeWalkHandler{ - Node: func(path btrfs.TreePath, node *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], err error) error { + Node: func(path btrfs.TreePath, node *util.Ref[btrfsvol.LogicalAddr, btrfs.Node]) error { visitedNodes[node.Addr] = struct{}{} return nil }, }, - Err: func(err error) { + Err: func(err *btrfsutil.WalkError) { fmt.Printf("Pass 2: walk FS: error: %v\n", err) }, }) -- cgit v1.2.3-2-g168b