summaryrefslogtreecommitdiff
path: root/cmd/btrfs-dbg/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/btrfs-dbg/main.go')
-rw-r--r--cmd/btrfs-dbg/main.go33
1 files changed, 14 insertions, 19 deletions
diff --git a/cmd/btrfs-dbg/main.go b/cmd/btrfs-dbg/main.go
index 3f30915..4b4a7a2 100644
--- a/cmd/btrfs-dbg/main.go
+++ b/cmd/btrfs-dbg/main.go
@@ -25,20 +25,13 @@ func Main(imgfilename string) (err error) {
}
}
- fh, err := os.Open(imgfilename)
+ fs, err := btrfsmisc.Open(os.O_RDONLY, imgfilename)
if err != nil {
return err
}
defer func() {
- maybeSetErr(fh.Close())
+ maybeSetErr(fs.Close())
}()
- dev := &btrfs.Device{
- File: fh,
- }
- fs := new(btrfs.FS)
- if err := fs.AddDevice(dev); err != nil {
- return err
- }
superblocks, err := fs.Superblocks()
if err != nil {
@@ -61,17 +54,19 @@ func Main(imgfilename string) (err error) {
}
spew.Dump(syschunks)
- if err := btrfsmisc.ScanForNodes(dev, superblocks[0].Data, func(nodeRef *util.Ref[btrfs.PhysicalAddr, btrfs.Node], err error) {
- if err != nil {
- fmt.Println(err)
- } else {
- fmt.Printf("node@%v: physical_addr=%v logical_addr=%v generation=%v owner=%v level=%v\n",
- nodeRef.Addr,
- nodeRef.Addr, nodeRef.Data.Head.Addr,
- nodeRef.Data.Head.Generation, nodeRef.Data.Head.Owner, nodeRef.Data.Head.Level)
+ 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 != nil {
+ fmt.Println(err)
+ } else {
+ fmt.Printf("node@%v: physical_addr=%v logical_addr=%v generation=%v owner=%v level=%v\n",
+ nodeRef.Addr,
+ nodeRef.Addr, nodeRef.Data.Head.Addr,
+ nodeRef.Data.Head.Generation, nodeRef.Data.Head.Owner, nodeRef.Data.Head.Level)
+ }
+ }, nil); err != nil {
+ return err
}
- }, nil); err != nil {
- return err
}
return nil