summaryrefslogtreecommitdiff
path: root/cmd/btrfs-fsck/pass2.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/btrfs-fsck/pass2.go')
-rw-r--r--cmd/btrfs-fsck/pass2.go45
1 files changed, 23 insertions, 22 deletions
diff --git a/cmd/btrfs-fsck/pass2.go b/cmd/btrfs-fsck/pass2.go
index 95a307c..a8c0c9b 100644
--- a/cmd/btrfs-fsck/pass2.go
+++ b/cmd/btrfs-fsck/pass2.go
@@ -2,7 +2,6 @@ package main
import (
"fmt"
- iofs "io/fs"
"lukeshu.com/btrfs-tools/pkg/btrfs"
"lukeshu.com/btrfs-tools/pkg/btrfs/btrfsvol"
@@ -14,7 +13,7 @@ func pass2(fs *btrfs.FS, foundNodes map[btrfsvol.LogicalAddr]struct{}) {
fmt.Printf("\nPass 2: orphaned nodes\n")
visitedNodes := make(map[btrfsvol.LogicalAddr]struct{})
- btrfsmisc.WalkFS(fs, btrfsmisc.WalkFSHandler{
+ btrfsmisc.WalkAllTrees(fs, btrfsmisc.WalkAllTreesHandler{
TreeWalkHandler: btrfs.TreeWalkHandler{
Node: func(path btrfs.TreePath, node *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], err error) error {
visitedNodes[node.Addr] = struct{}{}
@@ -37,26 +36,28 @@ func pass2(fs *btrfs.FS, foundNodes map[btrfsvol.LogicalAddr]struct{}) {
for node := range orphanedNodes {
orphanedRoots[node] = struct{}{}
}
- for potentialRoot := range orphanedRoots {
- if err := fs.TreeWalk(potentialRoot, btrfs.TreeWalkHandler{
- Node: func(path btrfs.TreePath, _ *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], _ error) error {
- nodeAddr := path[len(path)-1].NodeAddr
- if nodeAddr != potentialRoot {
- delete(orphanedRoots, nodeAddr)
- }
- orphanedNodes[nodeAddr] = orphanedNodes[nodeAddr] + 1
- visitCnt := orphanedNodes[nodeAddr]
- if visitCnt > 1 {
- return iofs.SkipDir
- }
- return nil
- },
- }); err != nil {
- fmt.Printf("Pass 2: walk orphans: error: %v\n", err)
+ /*
+ for potentialRoot := range orphanedRoots {
+ if err := fs.TreeWalk(potentialRoot, btrfs.TreeWalkHandler{
+ Node: func(path btrfs.TreePath, _ *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], _ error) error {
+ nodeAddr := path[len(path)-1].NodeAddr
+ if nodeAddr != potentialRoot {
+ delete(orphanedRoots, nodeAddr)
+ }
+ orphanedNodes[nodeAddr] = orphanedNodes[nodeAddr] + 1
+ visitCnt := orphanedNodes[nodeAddr]
+ if visitCnt > 1 {
+ return iofs.SkipDir
+ }
+ return nil
+ },
+ }); err != nil {
+ fmt.Printf("Pass 2: walk orphans: error: %v\n", err)
+ }
}
- }
- for _, node := range util.SortedMapKeys(orphanedRoots) {
- fmt.Printf("Pass 2: orphaned root: %v\n", node)
- }
+ for _, node := range util.SortedMapKeys(orphanedRoots) {
+ fmt.Printf("Pass 2: orphaned root: %v\n", node)
+ }
+ */
}