From b589943af25661c140bacdc0afc2550e1e2db852 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 1 Jul 2022 00:31:57 -0600 Subject: add more callbacks to WalkFS --- cmd/btrfs-fsck/pass1.go | 27 +++++++++++++++------------ cmd/btrfs-fsck/pass2.go | 15 +++++++++------ 2 files changed, 24 insertions(+), 18 deletions(-) (limited to 'cmd/btrfs-fsck') diff --git a/cmd/btrfs-fsck/pass1.go b/cmd/btrfs-fsck/pass1.go index 6812c73..5188d65 100644 --- a/cmd/btrfs-fsck/pass1.go +++ b/cmd/btrfs-fsck/pass1.go @@ -22,19 +22,22 @@ func pass1(fs *btrfs.FS, superblock *util.Ref[btrfs.PhysicalAddr, btrfs.Superblo fmt.Printf("Pass 1: ... walking fs\n") visitedNodes := make(map[btrfs.LogicalAddr]struct{}) - btrfsmisc.WalkFS(fs, btrfs.WalkTreeHandler{ - Node: func(path btrfs.WalkTreePath, node *util.Ref[btrfs.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 + btrfsmisc.WalkFS(fs, btrfsmisc.WalkFSHandler{ + WalkTreeHandler: btrfs.WalkTreeHandler{ + Node: func(path btrfs.WalkTreePath, node *util.Ref[btrfs.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 + }, + }, + Err: func(err error) { + fmt.Printf("Pass 1: ... walk fs: error: %v\n", err) }, - }, func(err error) { - fmt.Printf("Pass 1: ... walk fs: error: %v\n", err) }) fsFoundNodes := make(map[btrfs.LogicalAddr]struct{}) diff --git a/cmd/btrfs-fsck/pass2.go b/cmd/btrfs-fsck/pass2.go index acea740..7970cca 100644 --- a/cmd/btrfs-fsck/pass2.go +++ b/cmd/btrfs-fsck/pass2.go @@ -13,13 +13,16 @@ func pass2(fs *btrfs.FS, foundNodes map[btrfs.LogicalAddr]struct{}) { fmt.Printf("\nPass 2: orphaned nodes\n") visitedNodes := make(map[btrfs.LogicalAddr]struct{}) - btrfsmisc.WalkFS(fs, btrfs.WalkTreeHandler{ - Node: func(path btrfs.WalkTreePath, node *util.Ref[btrfs.LogicalAddr, btrfs.Node], err error) error { - visitedNodes[node.Addr] = struct{}{} - return nil + btrfsmisc.WalkFS(fs, btrfsmisc.WalkFSHandler{ + WalkTreeHandler: btrfs.WalkTreeHandler{ + Node: func(path btrfs.WalkTreePath, node *util.Ref[btrfs.LogicalAddr, btrfs.Node], err error) error { + visitedNodes[node.Addr] = struct{}{} + return nil + }, + }, + Err: func(err error) { + fmt.Printf("Pass 2: walk FS: error: %v\n", err) }, - }, func(err error) { - fmt.Printf("Pass 2: walk FS: error: %v\n", err) }) orphanedNodes := make(map[btrfs.LogicalAddr]int) -- cgit v1.2.3-2-g168b