diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-04-17 21:46:53 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-04-17 21:46:53 -0600 |
commit | 72c0d02ebf69b12ab434a5243978f05a65c43e3b (patch) | |
tree | c37fbbb12d79b2d5c87a96f0e2770d22934eab91 /lib/btrfs | |
parent | 4efa228eb104145bb0750fb68c0d9493dc5854d5 (diff) | |
parent | 7bd942c1e5f8d4a18f7e1ac866191d8f1aa31d30 (diff) |
Merge branch 'lukeshu/rebuilt-v2-pt3-errs'
Diffstat (limited to 'lib/btrfs')
-rw-r--r-- | lib/btrfs/btrfstree/btree_tree.go | 3 | ||||
-rw-r--r-- | lib/btrfs/btrfstree/path.go | 6 | ||||
-rw-r--r-- | lib/btrfs/io3_btree.go | 3 | ||||
-rw-r--r-- | lib/btrfs/io4_fs.go | 2 |
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 { |