From 8530a8b7b5f9f27bb5b5c319f285bb5a26470285 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 6 Jan 2023 02:03:50 -0700 Subject: rebuildnodes: Rework to be clear about what went wrong when reading --- lib/btrfsprogs/btrfsinspect/rebuildnodes/keyio/keyio.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'lib/btrfsprogs/btrfsinspect/rebuildnodes/keyio/keyio.go') diff --git a/lib/btrfsprogs/btrfsinspect/rebuildnodes/keyio/keyio.go b/lib/btrfsprogs/btrfsinspect/rebuildnodes/keyio/keyio.go index b4ab645..9e3b144 100644 --- a/lib/btrfsprogs/btrfsinspect/rebuildnodes/keyio/keyio.go +++ b/lib/btrfsprogs/btrfsinspect/rebuildnodes/keyio/keyio.go @@ -152,13 +152,17 @@ func (o *Handle) readNode(ctx context.Context, laddr btrfsvol.LogicalAddr) *disk return ref } -func (o *Handle) ReadItem(ctx context.Context, ptr ItemPtr) (item btrfsitem.Item, ok bool) { - if o.graph.Nodes[ptr.Node].Level != 0 || ptr.Idx < 0 { - return nil, false +func (o *Handle) ReadItem(ctx context.Context, ptr ItemPtr) btrfsitem.Item { + if o.graph.Nodes[ptr.Node].Level != 0 { + panic(fmt.Errorf("should not happen: keyio.Handle.ReadItem called for non-leaf node@%v", ptr.Node)) + } + if ptr.Idx < 0 { + panic(fmt.Errorf("should not happen: keyio.Handle.ReadItem called for negative item index: %v", ptr.Idx)) } items := o.readNode(ctx, ptr.Node).Data.BodyLeaf if ptr.Idx >= len(items) { - return nil, false + panic(fmt.Errorf("should not happen: keyio.Handle.ReadItem called for out-of-bounds item index: index=%v len=%v", + ptr.Idx, len(items))) } - return items[ptr.Idx].Body, true + return items[ptr.Idx].Body } -- cgit v1.2.3-2-g168b