summaryrefslogtreecommitdiff
path: root/lib/btrfs
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-01-09 14:23:23 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-02-12 16:16:53 -0700
commitd91f8ce17a6fc165fafd9dc921911233a69c34d2 (patch)
tree808a86b8f2309fe344b4cb0af62101b8a3b8b59a /lib/btrfs
parent1d7f5446dc37687f078269af3c63af7d7ebbfab4 (diff)
tree-wide: Migrate to the new ARCache
Diffstat (limited to 'lib/btrfs')
-rw-r--r--lib/btrfs/io4_fs.go24
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/btrfs/io4_fs.go b/lib/btrfs/io4_fs.go
index fce9c76..adc0928 100644
--- a/lib/btrfs/io4_fs.go
+++ b/lib/btrfs/io4_fs.go
@@ -75,10 +75,10 @@ type Subvolume struct {
rootVal btrfsitem.Root
rootErr error
- bareInodeCache *containers.LRUCache[btrfsprim.ObjID, *BareInode]
- fullInodeCache *containers.LRUCache[btrfsprim.ObjID, *FullInode]
- dirCache *containers.LRUCache[btrfsprim.ObjID, *Dir]
- fileCache *containers.LRUCache[btrfsprim.ObjID, *File]
+ bareInodeCache containers.ARCache[btrfsprim.ObjID, *BareInode]
+ fullInodeCache containers.ARCache[btrfsprim.ObjID, *FullInode]
+ dirCache containers.ARCache[btrfsprim.ObjID, *Dir]
+ fileCache containers.ARCache[btrfsprim.ObjID, *File]
}
func (sv *Subvolume) init() {
@@ -97,10 +97,10 @@ func (sv *Subvolume) init() {
}
}
- sv.bareInodeCache = containers.NewLRUCache[btrfsprim.ObjID, *BareInode](textui.Tunable(128))
- sv.fullInodeCache = containers.NewLRUCache[btrfsprim.ObjID, *FullInode](textui.Tunable(128))
- sv.dirCache = containers.NewLRUCache[btrfsprim.ObjID, *Dir](textui.Tunable(128))
- sv.fileCache = containers.NewLRUCache[btrfsprim.ObjID, *File](textui.Tunable(128))
+ sv.bareInodeCache.MaxLen = textui.Tunable(128)
+ sv.fullInodeCache.MaxLen = textui.Tunable(128)
+ sv.dirCache.MaxLen = textui.Tunable(128)
+ sv.fileCache.MaxLen = textui.Tunable(128)
})
}
@@ -111,7 +111,7 @@ func (sv *Subvolume) GetRootInode() (btrfsprim.ObjID, error) {
func (sv *Subvolume) LoadBareInode(inode btrfsprim.ObjID) (*BareInode, error) {
sv.init()
- val := sv.bareInodeCache.GetOrElse(inode, func() (val *BareInode) {
+ val := containers.LoadOrElse[btrfsprim.ObjID, *BareInode](&sv.bareInodeCache, inode, func(inode btrfsprim.ObjID) (val *BareInode) {
val = &BareInode{
Inode: inode,
}
@@ -144,7 +144,7 @@ func (sv *Subvolume) LoadBareInode(inode btrfsprim.ObjID) (*BareInode, error) {
func (sv *Subvolume) LoadFullInode(inode btrfsprim.ObjID) (*FullInode, error) {
sv.init()
- val := sv.fullInodeCache.GetOrElse(inode, func() (val *FullInode) {
+ val := containers.LoadOrElse[btrfsprim.ObjID, *FullInode](&sv.fullInodeCache, inode, func(indoe btrfsprim.ObjID) (val *FullInode) {
val = &FullInode{
BareInode: BareInode{
Inode: inode,
@@ -200,7 +200,7 @@ func (sv *Subvolume) LoadFullInode(inode btrfsprim.ObjID) (*FullInode, error) {
func (sv *Subvolume) LoadDir(inode btrfsprim.ObjID) (*Dir, error) {
sv.init()
- val := sv.dirCache.GetOrElse(inode, func() (val *Dir) {
+ val := containers.LoadOrElse[btrfsprim.ObjID, *Dir](&sv.dirCache, inode, func(inode btrfsprim.ObjID) (val *Dir) {
val = new(Dir)
fullInode, err := sv.LoadFullInode(inode)
if err != nil {
@@ -336,7 +336,7 @@ func (dir *Dir) AbsPath() (string, error) {
func (sv *Subvolume) LoadFile(inode btrfsprim.ObjID) (*File, error) {
sv.init()
- val := sv.fileCache.GetOrElse(inode, func() (val *File) {
+ val := containers.LoadOrElse[btrfsprim.ObjID, *File](&sv.fileCache, inode, func(inode btrfsprim.ObjID) (val *File) {
val = new(File)
fullInode, err := sv.LoadFullInode(inode)
if err != nil {