From 3bc918ff7841838f067720171d39366d34760da6 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 11 Oct 2018 12:09:44 +0200 Subject: [PATCH] lib/db: Properly remove FileInfos when dropping folder (#5260) --- lib/db/instance.go | 4 ++-- lib/db/keyer.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/db/instance.go b/lib/db/instance.go index e8f314bbf..e69061f9b 100644 --- a/lib/db/instance.go +++ b/lib/db/instance.go @@ -168,7 +168,7 @@ func (db *instance) withAllFolderTruncated(folder []byte, fn func(device []byte, t := db.newReadWriteTransaction() defer t.close() - dbi := t.NewIterator(util.BytesPrefix(db.keyer.GenerateDeviceFileKey(nil, folder, nil, nil).WithoutName()), nil) + dbi := t.NewIterator(util.BytesPrefix(db.keyer.GenerateDeviceFileKey(nil, folder, nil, nil).WithoutNameAndDevice()), nil) defer dbi.Release() var gk []byte @@ -439,7 +439,7 @@ func (db *instance) dropFolder(folder []byte) { for _, key := range [][]byte{ // Remove all items related to the given folder from the device->file bucket - db.keyer.GenerateDeviceFileKey(nil, folder, nil, nil).WithoutName(), + db.keyer.GenerateDeviceFileKey(nil, folder, nil, nil).WithoutNameAndDevice(), // Remove all sequences related to the folder db.keyer.GenerateSequenceKey(nil, []byte(folder), 0).WithoutSequence(), // Remove all items related to the given folder from the global bucket diff --git a/lib/db/keyer.go b/lib/db/keyer.go index ff3ce603f..b8f9b523c 100644 --- a/lib/db/keyer.go +++ b/lib/db/keyer.go @@ -82,8 +82,8 @@ func newDefaultKeyer(folderIdx, deviceIdx *smallIndex) defaultKeyer { type deviceFileKey []byte -func (k deviceFileKey) WithoutName() []byte { - return k[:keyPrefixLen+keyFolderLen+keyDeviceLen] +func (k deviceFileKey) WithoutNameAndDevice() []byte { + return k[:keyPrefixLen+keyFolderLen] } func (k defaultKeyer) GenerateDeviceFileKey(key, folder, device, name []byte) deviceFileKey {