summaryrefslogtreecommitdiff
path: root/cmd/btrfs-dump-tree/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/btrfs-dump-tree/main.go')
-rw-r--r--cmd/btrfs-dump-tree/main.go76
1 files changed, 4 insertions, 72 deletions
diff --git a/cmd/btrfs-dump-tree/main.go b/cmd/btrfs-dump-tree/main.go
index 14bb201..cf29ea4 100644
--- a/cmd/btrfs-dump-tree/main.go
+++ b/cmd/btrfs-dump-tree/main.go
@@ -8,9 +8,8 @@ import (
"fmt"
"os"
- "git.lukeshu.com/btrfs-progs-ng/lib/btrfs"
- "git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsitem"
- "git.lukeshu.com/btrfs-progs-ng/lib/btrfsmisc"
+ "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsinspect"
+ "git.lukeshu.com/btrfs-progs-ng/lib/btrfsprogs/btrfsutil"
)
func main() {
@@ -29,7 +28,7 @@ func Main(imgfilename string) (err error) {
}
}
- fs, err := btrfsmisc.Open(os.O_RDONLY, imgfilename)
+ fs, err := btrfsutil.Open(os.O_RDONLY, imgfilename)
if err != nil {
return err
}
@@ -37,73 +36,6 @@ func Main(imgfilename string) (err error) {
maybeSetErr(fs.Close())
}()
- superblock, err := fs.Superblock()
- if err != nil {
- return err
- }
-
fmt.Printf("btrfs-progs v%v\n", version)
- if superblock.Data.RootTree != 0 {
- fmt.Printf("root tree\n")
- if err := btrfsmisc.PrintTree(fs, btrfs.ROOT_TREE_OBJECTID); err != nil {
- return err
- }
- }
- if superblock.Data.ChunkTree != 0 {
- fmt.Printf("chunk tree\n")
- if err := btrfsmisc.PrintTree(fs, btrfs.CHUNK_TREE_OBJECTID); err != nil {
- return err
- }
- }
- if superblock.Data.LogTree != 0 {
- fmt.Printf("log root tree\n")
- if err := btrfsmisc.PrintTree(fs, btrfs.TREE_LOG_OBJECTID); err != nil {
- return err
- }
- }
- if superblock.Data.BlockGroupRoot != 0 {
- fmt.Printf("block group tree\n")
- if err := btrfsmisc.PrintTree(fs, btrfs.BLOCK_GROUP_TREE_OBJECTID); err != nil {
- return err
- }
- }
- if err := fs.TreeWalk(btrfs.ROOT_TREE_OBJECTID, btrfs.TreeWalkHandler{
- Item: func(_ btrfs.TreePath, item btrfs.Item) error {
- if item.Head.Key.ItemType != btrfsitem.ROOT_ITEM_KEY {
- return nil
- }
- treeName, ok := map[btrfs.ObjID]string{
- btrfs.ROOT_TREE_OBJECTID: "root",
- btrfs.EXTENT_TREE_OBJECTID: "extent",
- btrfs.CHUNK_TREE_OBJECTID: "chunk",
- btrfs.DEV_TREE_OBJECTID: "device",
- btrfs.FS_TREE_OBJECTID: "fs",
- btrfs.ROOT_TREE_DIR_OBJECTID: "directory",
- btrfs.CSUM_TREE_OBJECTID: "checksum",
- btrfs.ORPHAN_OBJECTID: "orphan",
- btrfs.TREE_LOG_OBJECTID: "log",
- btrfs.TREE_LOG_FIXUP_OBJECTID: "log fixup",
- btrfs.TREE_RELOC_OBJECTID: "reloc",
- btrfs.DATA_RELOC_TREE_OBJECTID: "data reloc",
- btrfs.EXTENT_CSUM_OBJECTID: "extent checksum",
- btrfs.QUOTA_TREE_OBJECTID: "quota",
- btrfs.UUID_TREE_OBJECTID: "uuid",
- btrfs.FREE_SPACE_TREE_OBJECTID: "free space",
- btrfs.MULTIPLE_OBJECTIDS: "multiple",
- btrfs.BLOCK_GROUP_TREE_OBJECTID: "block group",
- }[item.Head.Key.ObjectID]
- if !ok {
- treeName = "file"
- }
- fmt.Printf("%v tree %v \n", treeName, btrfsmisc.FmtKey(item.Head.Key))
- return btrfsmisc.PrintTree(fs, item.Head.Key.ObjectID)
- },
- }); err != nil {
- return err
- }
- fmt.Printf("total bytes %v\n", superblock.Data.TotalBytes)
- fmt.Printf("bytes used %v\n", superblock.Data.BytesUsed)
- fmt.Printf("uuid %v\n", superblock.Data.FSUUID)
-
- return nil
+ return btrfsinspect.DumpTrees(fs)
}