From f9a1a7e700ff540490c5cc22e4a40502a8c89d6b Mon Sep 17 00:00:00 2001 From: remusb Date: Sun, 10 Jun 2018 21:54:20 +0300 Subject: [PATCH] cache: fix root folder caching --- backend/cache/storage_persistent.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/backend/cache/storage_persistent.go b/backend/cache/storage_persistent.go index 62308d847..8bdfe51ad 100644 --- a/backend/cache/storage_persistent.go +++ b/backend/cache/storage_persistent.go @@ -202,13 +202,24 @@ func (b *Persistent) AddBatchDir(cachedDirs []*Directory) error { } return b.db.Update(func(tx *bolt.Tx) error { - bucket := b.getBucket(cachedDirs[0].Dir, true, tx) + var bucket *bolt.Bucket + if cachedDirs[0].Dir == "" { + bucket = tx.Bucket([]byte(RootBucket)) + } else { + bucket = b.getBucket(cachedDirs[0].Dir, true, tx) + } if bucket == nil { return errors.Errorf("couldn't open bucket (%v)", cachedDirs[0].Dir) } for _, cachedDir := range cachedDirs { - b, err := bucket.CreateBucketIfNotExists([]byte(cachedDir.Name)) + var b *bolt.Bucket + var err error + if cachedDir.Name == "" { + b = bucket + } else { + b, err = bucket.CreateBucketIfNotExists([]byte(cachedDir.Name)) + } if err != nil { return err }