diff options
author | Luke Shumaker <lukeshu@lukeshu.com> | 2023-02-28 13:10:16 -0700 |
---|---|---|
committer | Luke Shumaker <lukeshu@lukeshu.com> | 2023-03-15 08:03:53 -0600 |
commit | e46cbc7ee7f3a2b93bd1bdf02e1eb95b98100f57 (patch) | |
tree | f179efcbcdc856f18ee91a67cf7f1b197f97d841 /lib/btrfsutil/graph.go | |
parent | 9ff81649f425370bf3c1aee32542a784119947f8 (diff) |
misc: btrfsutil: Shrink the size of GraphNode
Diffstat (limited to 'lib/btrfsutil/graph.go')
-rw-r--r-- | lib/btrfsutil/graph.go | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/lib/btrfsutil/graph.go b/lib/btrfsutil/graph.go index 8debe9d..9e453eb 100644 --- a/lib/btrfsutil/graph.go +++ b/lib/btrfsutil/graph.go @@ -27,20 +27,31 @@ type GraphNode struct { Level uint8 Generation btrfsprim.Generation Owner btrfsprim.ObjID - NumItems uint32 - MinItem btrfsprim.Key - MaxItem btrfsprim.Key Items []btrfsprim.Key } +func (n GraphNode) MinItem() btrfsprim.Key { + if len(n.Items) == 0 { + return btrfsprim.Key{} + } + return n.Items[0] +} + +func (n GraphNode) MaxItem() btrfsprim.Key { + if len(n.Items) == 0 { + return btrfsprim.Key{} + } + return n.Items[len(n.Items)-1] +} + func (n GraphNode) String() string { if reflect.ValueOf(n).IsZero() { return "{}" } return fmt.Sprintf(`{lvl:%v, gen:%v, tree:%v, cnt:%v, min:(%v,%v,%v), max:(%v,%v,%v)}`, - n.Level, n.Generation, n.Owner, n.NumItems, - n.MinItem.ObjectID, n.MinItem.ItemType, n.MinItem.Offset, - n.MaxItem.ObjectID, n.MaxItem.ItemType, n.MaxItem.Offset) + n.Level, n.Generation, n.Owner, len(n.Items), + n.MinItem().ObjectID, n.MinItem().ItemType, n.MinItem().Offset, + n.MaxItem().ObjectID, n.MaxItem().ItemType, n.MaxItem().Offset) } type GraphEdge struct { @@ -143,9 +154,6 @@ func (g Graph) InsertNode(nodeRef *diskio.Ref[btrfsvol.LogicalAddr, btrfstree.No Level: nodeRef.Data.Head.Level, Generation: nodeRef.Data.Head.Generation, Owner: nodeRef.Data.Head.Owner, - NumItems: nodeRef.Data.Head.NumItems, - MinItem: discardOK(nodeRef.Data.MinItem()), - MaxItem: discardOK(nodeRef.Data.MaxItem()), } if nodeRef.Data.Head.Level == 0 { @@ -256,7 +264,3 @@ func (g Graph) FinalCheck(ctx context.Context, fs diskio.File[btrfsvol.LogicalAd return nil } - -func discardOK[T any](val T, _ bool) T { - return val -} |