summaryrefslogtreecommitdiff
path: root/lib/btrfs
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-04-17 21:46:53 -0600
committerLuke Shumaker <lukeshu@lukeshu.com>2023-04-17 21:46:53 -0600
commit72c0d02ebf69b12ab434a5243978f05a65c43e3b (patch)
treec37fbbb12d79b2d5c87a96f0e2770d22934eab91 /lib/btrfs
parent4efa228eb104145bb0750fb68c0d9493dc5854d5 (diff)
parent7bd942c1e5f8d4a18f7e1ac866191d8f1aa31d30 (diff)
Merge branch 'lukeshu/rebuilt-v2-pt3-errs'
Diffstat (limited to 'lib/btrfs')
-rw-r--r--lib/btrfs/btrfstree/btree_tree.go3
-rw-r--r--lib/btrfs/btrfstree/path.go6
-rw-r--r--lib/btrfs/io3_btree.go3
-rw-r--r--lib/btrfs/io4_fs.go2
4 files changed, 7 insertions, 7 deletions
diff --git a/lib/btrfs/btrfstree/btree_tree.go b/lib/btrfs/btrfstree/btree_tree.go
index b9b9201..b071b7d 100644
--- a/lib/btrfs/btrfstree/btree_tree.go
+++ b/lib/btrfs/btrfstree/btree_tree.go
@@ -328,7 +328,8 @@ func (tree *RawTree) TreeParentID(ctx context.Context) (btrfsprim.ObjID, btrfspr
}
parentIDItem, err := uuidTree.TreeLookup(ctx, btrfsitem.UUIDToKey(tree.ParentUUID))
if err != nil {
- return 0, 0, err
+ return 0, 0, fmt.Errorf("tree %s: failed to look up UUID: %v: %w",
+ tree.ID.Format(btrfsprim.ROOT_TREE_OBJECTID), tree.ParentUUID, err)
}
switch parentIDBody := parentIDItem.Body.(type) {
case *btrfsitem.UUIDMap:
diff --git a/lib/btrfs/btrfstree/path.go b/lib/btrfs/btrfstree/path.go
index 327a39b..3fd43c8 100644
--- a/lib/btrfs/btrfstree/path.go
+++ b/lib/btrfs/btrfstree/path.go
@@ -134,7 +134,7 @@ func (path Path) String() string {
return ret.String()
}
-func checkOwner(
+func CheckOwner(
ctx context.Context, forrest Forrest, treeID btrfsprim.ObjID,
ownerToCheck btrfsprim.ObjID, genToCheck btrfsprim.Generation,
) error {
@@ -194,7 +194,7 @@ func (path Path) NodeExpectations(ctx context.Context) (_ btrfsvol.LogicalAddr,
Level: containers.OptionalValue(lastElem.ToLevel),
Generation: containers.OptionalValue(lastElem.ToGeneration),
Owner: func(owner btrfsprim.ObjID, gen btrfsprim.Generation) error {
- return checkOwner(ctx, firstElem.Forrest, lastElem.TreeID,
+ return CheckOwner(ctx, firstElem.Forrest, lastElem.TreeID,
owner, gen)
},
MinItem: containers.OptionalValue(btrfsprim.Key{}),
@@ -206,7 +206,7 @@ func (path Path) NodeExpectations(ctx context.Context) (_ btrfsvol.LogicalAddr,
Level: containers.OptionalValue(lastElem.ToLevel),
Generation: containers.OptionalValue(lastElem.ToGeneration),
Owner: func(owner btrfsprim.ObjID, gen btrfsprim.Generation) error {
- return checkOwner(ctx, firstElem.Forrest, lastElem.FromTree,
+ return CheckOwner(ctx, firstElem.Forrest, lastElem.FromTree,
owner, gen)
},
MinItem: containers.OptionalValue(lastElem.ToMinKey),
diff --git a/lib/btrfs/io3_btree.go b/lib/btrfs/io3_btree.go
index c9e1d79..7518561 100644
--- a/lib/btrfs/io3_btree.go
+++ b/lib/btrfs/io3_btree.go
@@ -6,7 +6,6 @@ package btrfs
import (
"context"
- "fmt"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfsprim"
"git.lukeshu.com/btrfs-progs-ng/lib/btrfs/btrfstree"
@@ -44,7 +43,7 @@ func (fs *FS) AcquireNode(ctx context.Context, addr btrfsvol.LogicalAddr, exp bt
if nodeEntry.node != nil {
if err := exp.Check(nodeEntry.node); err != nil {
fs.cacheNodes.Release(addr)
- return nil, fmt.Errorf("btrfs.FS.AcquireNode: node@%v: %w", addr, err)
+ return nil, err
}
}
diff --git a/lib/btrfs/io4_fs.go b/lib/btrfs/io4_fs.go
index 9b70713..1b7837e 100644
--- a/lib/btrfs/io4_fs.go
+++ b/lib/btrfs/io4_fs.go
@@ -423,7 +423,7 @@ func (sv *Subvolume) loadFile(_ context.Context, inode btrfsprim.ObjID, file *Fi
if err != nil {
file.Errs = append(file.Errs, fmt.Errorf("extent %v: %w", extent.OffsetWithinFile, err))
}
- pos += size
+ pos = extent.OffsetWithinFile + size
}
if file.InodeItem != nil && pos != file.InodeItem.NumBytes {
if file.InodeItem.NumBytes > pos {