summaryrefslogtreecommitdiff
path: root/pkg/btrfsmisc
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/btrfsmisc')
-rw-r--r--pkg/btrfsmisc/fsck.go9
-rw-r--r--pkg/btrfsmisc/print_tree.go7
-rw-r--r--pkg/btrfsmisc/walk.go11
3 files changed, 15 insertions, 12 deletions
diff --git a/pkg/btrfsmisc/fsck.go b/pkg/btrfsmisc/fsck.go
index ea48d12..aec55a0 100644
--- a/pkg/btrfsmisc/fsck.go
+++ b/pkg/btrfsmisc/fsck.go
@@ -5,6 +5,7 @@ import (
"fmt"
"lukeshu.com/btrfs-tools/pkg/btrfs"
+ "lukeshu.com/btrfs-tools/pkg/btrfs/btrfsvol"
"lukeshu.com/btrfs-tools/pkg/util"
)
@@ -12,7 +13,7 @@ import (
// cmds/rescue-chunk-recover.c:scan_one_device(), except rather than
// doing something itself when it finds a node, it simply calls a
// callback function.
-func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrfs.PhysicalAddr, btrfs.Node], error), prog func(btrfs.PhysicalAddr)) error {
+func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrfsvol.PhysicalAddr, btrfs.Node], error), prog func(btrfsvol.PhysicalAddr)) error {
devSize, err := dev.Size()
if err != nil {
return err
@@ -23,7 +24,7 @@ func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrf
sb.NodeSize, sb.SectorSize)
}
- for pos := btrfs.PhysicalAddr(0); pos+btrfs.PhysicalAddr(sb.NodeSize) < devSize; pos += btrfs.PhysicalAddr(sb.SectorSize) {
+ for pos := btrfsvol.PhysicalAddr(0); pos+btrfsvol.PhysicalAddr(sb.NodeSize) < devSize; pos += btrfsvol.PhysicalAddr(sb.SectorSize) {
if util.InSlice(pos, btrfs.SuperblockAddrs) {
//fmt.Printf("sector@%v is a superblock\n", pos)
continue
@@ -33,13 +34,13 @@ func ScanForNodes(dev *btrfs.Device, sb btrfs.Superblock, fn func(*util.Ref[btrf
prog(pos)
}
- nodeRef, err := btrfs.ReadNode[btrfs.PhysicalAddr](dev, sb, pos, nil)
+ nodeRef, err := btrfs.ReadNode[btrfsvol.PhysicalAddr](dev, sb, pos, nil)
if err != nil && errors.Is(err, btrfs.ErrNotANode) {
continue
}
fn(nodeRef, err)
- pos += btrfs.PhysicalAddr(sb.NodeSize) - btrfs.PhysicalAddr(sb.SectorSize)
+ pos += btrfsvol.PhysicalAddr(sb.NodeSize) - btrfsvol.PhysicalAddr(sb.SectorSize)
}
if prog != nil {
diff --git a/pkg/btrfsmisc/print_tree.go b/pkg/btrfsmisc/print_tree.go
index 94ec0b6..bc3224b 100644
--- a/pkg/btrfsmisc/print_tree.go
+++ b/pkg/btrfsmisc/print_tree.go
@@ -7,15 +7,16 @@ 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/util"
)
// PrintTree mimics btrfs-progs
// kernel-shared/print-tree.c:btrfs_print_tree() and
// kernel-shared/print-tree.c:btrfs_print_leaf()
-func PrintTree(fs *btrfs.FS, root btrfs.LogicalAddr) error {
+func PrintTree(fs *btrfs.FS, root btrfsvol.LogicalAddr) error {
return fs.TreeWalk(root, btrfs.TreeWalkHandler{
- Node: func(path btrfs.TreePath, nodeRef *util.Ref[btrfs.LogicalAddr, btrfs.Node], err error) error {
+ Node: func(path btrfs.TreePath, nodeRef *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], err error) error {
if err != nil {
fmt.Fprintf(os.Stderr, "error: %v: %v\n", path, err)
}
@@ -319,7 +320,7 @@ func FmtKey(key btrfs.Key) string {
case btrfsitem.QGROUP_RELATION_KEY: //TODO, btrfsitem.QGROUP_INFO_KEY, btrfsitem.QGROUP_LIMIT_KEY:
panic("not implemented")
case btrfsitem.UUID_SUBVOL_KEY, btrfsitem.UUID_RECEIVED_SUBVOL_KEY:
- fmt.Fprintf(&out, " %v)", btrfs.PhysicalAddr(key.Offset))
+ fmt.Fprintf(&out, " %v)", btrfsvol.PhysicalAddr(key.Offset))
case btrfsitem.ROOT_ITEM_KEY:
fmt.Fprintf(&out, " %v)", btrfs.ObjID(key.Offset))
default:
diff --git a/pkg/btrfsmisc/walk.go b/pkg/btrfsmisc/walk.go
index 8017b69..7d08394 100644
--- a/pkg/btrfsmisc/walk.go
+++ b/pkg/btrfsmisc/walk.go
@@ -5,6 +5,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/util"
)
@@ -26,8 +27,8 @@ func (e WalkErr) Error() string {
type WalkFSHandler struct {
Err func(error)
// Callbacks for entire trees
- PreTree func(name string, laddr btrfs.LogicalAddr)
- PostTree func(name string, laddr btrfs.LogicalAddr)
+ PreTree func(name string, laddr btrfsvol.LogicalAddr)
+ PostTree func(name string, laddr btrfsvol.LogicalAddr)
// Callbacks for nodes or smaller
btrfs.TreeWalkHandler
}
@@ -47,7 +48,7 @@ func WalkFS(fs *btrfs.FS, cbs WalkFSHandler) {
var foundTrees []struct {
Name string
- Root btrfs.LogicalAddr
+ Root btrfsvol.LogicalAddr
}
origItem := cbs.Item
cbs.Item = func(path btrfs.TreePath, item btrfs.Item) error {
@@ -58,7 +59,7 @@ func WalkFS(fs *btrfs.FS, cbs WalkFSHandler) {
} else {
foundTrees = append(foundTrees, struct {
Name string
- Root btrfs.LogicalAddr
+ Root btrfsvol.LogicalAddr
}{
Name: fmt.Sprintf("tree %v (via %v %v)",
item.Head.Key.ObjectID.Format(0), treeName, path),
@@ -73,7 +74,7 @@ func WalkFS(fs *btrfs.FS, cbs WalkFSHandler) {
}
origNode := cbs.Node
- cbs.Node = func(path btrfs.TreePath, node *util.Ref[btrfs.LogicalAddr, btrfs.Node], err error) error {
+ cbs.Node = func(path btrfs.TreePath, node *util.Ref[btrfsvol.LogicalAddr, btrfs.Node], err error) error {
if err != nil {
handleErr(path, err)
}