diff options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/btrfs-dbg/main.go | 3 | ||||
-rw-r--r-- | cmd/btrfs-fsck/pass0.go | 3 | ||||
-rw-r--r-- | cmd/btrfs-fsck/pass1.go | 18 | ||||
-rw-r--r-- | cmd/btrfs-fsck/pass2.go | 13 | ||||
-rw-r--r-- | cmd/btrfs-ls-files/main.go | 3 | ||||
-rw-r--r-- | cmd/btrfs-ls-trees/main.go | 5 |
6 files changed, 25 insertions, 20 deletions
diff --git a/cmd/btrfs-dbg/main.go b/cmd/btrfs-dbg/main.go index 4b4a7a2..40356e0 100644 --- a/cmd/btrfs-dbg/main.go +++ b/cmd/btrfs-dbg/main.go @@ -7,6 +7,7 @@ import ( "github.com/davecgh/go-spew/spew" "lukeshu.com/btrfs-tools/pkg/btrfs" + "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsvol" "lukeshu.com/btrfs-tools/pkg/btrfsmisc" "lukeshu.com/btrfs-tools/pkg/util" ) @@ -55,7 +56,7 @@ func Main(imgfilename string) (err error) { spew.Dump(syschunks) for _, dev := range fs.LV.PhysicalVolumes() { - if err := btrfsmisc.ScanForNodes(dev, superblocks[0].Data, func(nodeRef *util.Ref[btrfs.PhysicalAddr, btrfs.Node], err error) { + if err := btrfsmisc.ScanForNodes(dev, superblocks[0].Data, func(nodeRef *util.Ref[btrfsvol.PhysicalAddr, btrfs.Node], err error) { if err != nil { fmt.Println(err) } else { diff --git a/cmd/btrfs-fsck/pass0.go b/cmd/btrfs-fsck/pass0.go index c0c872b..28e0501 100644 --- a/cmd/btrfs-fsck/pass0.go +++ b/cmd/btrfs-fsck/pass0.go @@ -5,10 +5,11 @@ import ( "os" "lukeshu.com/btrfs-tools/pkg/btrfs" + "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsvol" "lukeshu.com/btrfs-tools/pkg/util" ) -func pass0(filenames ...string) (*btrfs.FS, *util.Ref[btrfs.PhysicalAddr, btrfs.Superblock], error) { +func pass0(filenames ...string) (*btrfs.FS, *util.Ref[btrfsvol.PhysicalAddr, btrfs.Superblock], error) { fmt.Printf("\nPass 0: init and superblocks...\n") fs := new(btrfs.FS) diff --git a/cmd/btrfs-fsck/pass1.go b/cmd/btrfs-fsck/pass1.go index e75e4fe..f8626af 100644 --- a/cmd/btrfs-fsck/pass1.go +++ b/cmd/btrfs-fsck/pass1.go @@ -17,14 +17,14 @@ import ( "lukeshu.com/btrfs-tools/pkg/util" ) -func pass1(fs *btrfs.FS, superblock *util.Ref[btrfs.PhysicalAddr, btrfs.Superblock]) (map[btrfs.LogicalAddr]struct{}, error) { +func pass1(fs *btrfs.FS, superblock *util.Ref[btrfsvol.PhysicalAddr, btrfs.Superblock]) (map[btrfsvol.LogicalAddr]struct{}, error) { fmt.Printf("\nPass 1: chunk mappings...\n") fmt.Printf("Pass 1: ... walking fs\n") - visitedNodes := make(map[btrfs.LogicalAddr]struct{}) + visitedNodes := make(map[btrfsvol.LogicalAddr]struct{}) btrfsmisc.WalkFS(fs, btrfsmisc.WalkFSHandler{ TreeWalkHandler: btrfs.TreeWalkHandler{ - Node: func(path btrfs.TreePath, node *util.Ref[btrfs.LogicalAddr, btrfs.Node], err error) error { + 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) @@ -40,7 +40,7 @@ func pass1(fs *btrfs.FS, superblock *util.Ref[btrfs.PhysicalAddr, btrfs.Superblo }, }) - fsFoundNodes := make(map[btrfs.LogicalAddr]struct{}) + fsFoundNodes := make(map[btrfsvol.LogicalAddr]struct{}) for _, dev := range fs.LV.PhysicalVolumes() { fmt.Printf("Pass 1: ... dev[%q] scanning for nodes...\n", dev.Name()) devResult, err := pass1ScanOneDev(dev, superblock.Data) @@ -69,7 +69,7 @@ func pass1(fs *btrfs.FS, superblock *util.Ref[btrfs.PhysicalAddr, btrfs.Superblo } type pass1ScanOneDevResult struct { - FoundNodes map[btrfs.LogicalAddr][]btrfs.PhysicalAddr + FoundNodes map[btrfsvol.LogicalAddr][]btrfsvol.PhysicalAddr FoundChunks []btrfs.SysChunk FoundBlockGroups []sysBlockGroup FoundDevExtents []sysDevExtent @@ -236,13 +236,13 @@ func pass1ScanOneDev_printProgress(dev *btrfs.Device, pct int, result pass1ScanO func pass1ScanOneDev_real(dev *btrfs.Device, superblock btrfs.Superblock) (pass1ScanOneDevResult, error) { result := pass1ScanOneDevResult{ - FoundNodes: make(map[btrfs.LogicalAddr][]btrfs.PhysicalAddr), + FoundNodes: make(map[btrfsvol.LogicalAddr][]btrfsvol.PhysicalAddr), } devSize, _ := dev.Size() lastProgress := -1 - err := btrfsmisc.ScanForNodes(dev, superblock, func(nodeRef *util.Ref[btrfs.PhysicalAddr, btrfs.Node], err error) { + err := btrfsmisc.ScanForNodes(dev, superblock, func(nodeRef *util.Ref[btrfsvol.PhysicalAddr, btrfs.Node], err error) { if err != nil { fmt.Printf("Pass 1: ... dev[%q] error: %v\n", dev.Name(), err) return @@ -291,7 +291,7 @@ func pass1ScanOneDev_real(dev *btrfs.Device, superblock btrfs.Superblock) (pass1 }) } } - }, func(pos btrfs.PhysicalAddr) { + }, func(pos btrfsvol.PhysicalAddr) { pct := int(100 * float64(pos) / float64(devSize)) if pct != lastProgress || pos == devSize { pass1ScanOneDev_printProgress(dev, pct, result) @@ -372,7 +372,7 @@ func pass1WriteReconstructedChunks(fs *btrfs.FS) { // store that node at the root node of the chunk tree. This // isn't true in general, but it's true of my particular // filesystem. - reconstructedNode := &util.Ref[btrfs.LogicalAddr, btrfs.Node]{ + reconstructedNode := &util.Ref[btrfsvol.LogicalAddr, btrfs.Node]{ File: fs, Addr: superblock.ChunkTree, Data: btrfs.Node{ diff --git a/cmd/btrfs-fsck/pass2.go b/cmd/btrfs-fsck/pass2.go index 989b79f..95a307c 100644 --- a/cmd/btrfs-fsck/pass2.go +++ b/cmd/btrfs-fsck/pass2.go @@ -5,17 +5,18 @@ import ( iofs "io/fs" "lukeshu.com/btrfs-tools/pkg/btrfs" + "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsvol" "lukeshu.com/btrfs-tools/pkg/btrfsmisc" "lukeshu.com/btrfs-tools/pkg/util" ) -func pass2(fs *btrfs.FS, foundNodes map[btrfs.LogicalAddr]struct{}) { +func pass2(fs *btrfs.FS, foundNodes map[btrfsvol.LogicalAddr]struct{}) { fmt.Printf("\nPass 2: orphaned nodes\n") - visitedNodes := make(map[btrfs.LogicalAddr]struct{}) + visitedNodes := make(map[btrfsvol.LogicalAddr]struct{}) btrfsmisc.WalkFS(fs, btrfsmisc.WalkFSHandler{ TreeWalkHandler: btrfs.TreeWalkHandler{ - Node: func(path btrfs.TreePath, node *util.Ref[btrfs.LogicalAddr, btrfs.Node], err error) error { + Node: func(path btrfs.TreePath, node *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], err error) error { visitedNodes[node.Addr] = struct{}{} return nil }, @@ -25,20 +26,20 @@ func pass2(fs *btrfs.FS, foundNodes map[btrfs.LogicalAddr]struct{}) { }, }) - orphanedNodes := make(map[btrfs.LogicalAddr]int) + orphanedNodes := make(map[btrfsvol.LogicalAddr]int) for foundNode := range foundNodes { if _, visited := visitedNodes[foundNode]; !visited { orphanedNodes[foundNode] = 0 } } - orphanedRoots := make(map[btrfs.LogicalAddr]struct{}, len(orphanedNodes)) + orphanedRoots := make(map[btrfsvol.LogicalAddr]struct{}, len(orphanedNodes)) 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[btrfs.LogicalAddr, btrfs.Node], _ error) error { + 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) diff --git a/cmd/btrfs-ls-files/main.go b/cmd/btrfs-ls-files/main.go index 4cb4b56..4f9f520 100644 --- a/cmd/btrfs-ls-files/main.go +++ b/cmd/btrfs-ls-files/main.go @@ -6,6 +6,7 @@ import ( "lukeshu.com/btrfs-tools/pkg/btrfs" "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsitem" + "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsvol" "lukeshu.com/btrfs-tools/pkg/btrfsmisc" "lukeshu.com/btrfs-tools/pkg/util" ) @@ -51,7 +52,7 @@ func Main(imgfilenames ...string) (err error) { return printDir(fs, fsTree, "", "/", fsTreeRootBody.RootDirID, fsTreeRootBody.Inode) } -func printDir(fs *btrfs.FS, fsTree btrfs.LogicalAddr, prefix, dirName string, dirInodeNum btrfs.ObjID, dirInode btrfsitem.Inode) error { +func printDir(fs *btrfs.FS, fsTree btrfsvol.LogicalAddr, prefix, dirName string, dirInodeNum btrfs.ObjID, dirInode btrfsitem.Inode) error { fmt.Printf("%s[%s\tino=%d\tuid=%d\tgid=%d\tsize=%d] %s\n", prefix, dirInode.Mode, dirInodeNum, dirInode.UID, dirInode.GID, dirInode.Size, diff --git a/cmd/btrfs-ls-trees/main.go b/cmd/btrfs-ls-trees/main.go index 395ef07..eb4fef5 100644 --- a/cmd/btrfs-ls-trees/main.go +++ b/cmd/btrfs-ls-trees/main.go @@ -8,6 +8,7 @@ import ( "lukeshu.com/btrfs-tools/pkg/btrfs" "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsitem" + "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsvol" "lukeshu.com/btrfs-tools/pkg/btrfsmisc" "lukeshu.com/btrfs-tools/pkg/util" ) @@ -37,7 +38,7 @@ func Main(imgfilenames ...string) (err error) { var treeErrCnt int var treeItemCnt map[btrfsitem.Type]int btrfsmisc.WalkFS(fs, btrfsmisc.WalkFSHandler{ - PreTree: func(name string, laddr btrfs.LogicalAddr) { + PreTree: func(name string, laddr btrfsvol.LogicalAddr) { treeErrCnt = 0 treeItemCnt = make(map[btrfsitem.Type]int) fmt.Printf("tree laddr=%v name=%q\n", laddr, name) @@ -52,7 +53,7 @@ func Main(imgfilenames ...string) (err error) { return nil }, }, - PostTree: func(name string, laddr btrfs.LogicalAddr) { + PostTree: func(name string, laddr btrfsvol.LogicalAddr) { totalItems := 0 for _, cnt := range treeItemCnt { totalItems += cnt |