From fc06704c55e82818b652210dde3b7b6902fac10a Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 6 Oct 2022 01:26:27 -0600 Subject: let skinny paths get evicted --- lib/btrfs/btrfsprim/misc.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'lib/btrfs/btrfsprim') diff --git a/lib/btrfs/btrfsprim/misc.go b/lib/btrfs/btrfsprim/misc.go index 0ebbe19..9b3a6f8 100644 --- a/lib/btrfs/btrfsprim/misc.go +++ b/lib/btrfs/btrfsprim/misc.go @@ -6,6 +6,7 @@ package btrfsprim import ( "fmt" + "math" "time" "git.lukeshu.com/btrfs-progs-ng/lib/binstruct" @@ -25,6 +26,24 @@ func (k Key) String() string { return fmt.Sprintf("{%v %v %v}", k.ObjectID, k.ItemType, k.Offset) } +var MaxKey = Key{ + ObjectID: math.MaxUint64, + ItemType: math.MaxUint8, + Offset: math.MaxUint64, +} + +func (key Key) Mm() Key { + switch { + case key.Offset > 0: + key.Offset-- + case key.ItemType > 0: + key.ItemType-- + case key.ObjectID > 0: + key.ObjectID-- + } + return key +} + func (a Key) Cmp(b Key) int { if d := containers.NativeCmp(a.ObjectID, b.ObjectID); d != 0 { return d -- cgit v1.2.3-2-g168b