mirror of
https://github.com/octoleo/syncthing.git
synced 2025-02-02 11:58:28 +00:00
lib/db: Properly remove FileInfos when dropping folder (#5260)
This commit is contained in:
parent
3e50edf46f
commit
3bc918ff78
@ -168,7 +168,7 @@ func (db *instance) withAllFolderTruncated(folder []byte, fn func(device []byte,
|
|||||||
t := db.newReadWriteTransaction()
|
t := db.newReadWriteTransaction()
|
||||||
defer t.close()
|
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()
|
defer dbi.Release()
|
||||||
|
|
||||||
var gk []byte
|
var gk []byte
|
||||||
@ -439,7 +439,7 @@ func (db *instance) dropFolder(folder []byte) {
|
|||||||
|
|
||||||
for _, key := range [][]byte{
|
for _, key := range [][]byte{
|
||||||
// Remove all items related to the given folder from the device->file bucket
|
// 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
|
// Remove all sequences related to the folder
|
||||||
db.keyer.GenerateSequenceKey(nil, []byte(folder), 0).WithoutSequence(),
|
db.keyer.GenerateSequenceKey(nil, []byte(folder), 0).WithoutSequence(),
|
||||||
// Remove all items related to the given folder from the global bucket
|
// Remove all items related to the given folder from the global bucket
|
||||||
|
@ -82,8 +82,8 @@ func newDefaultKeyer(folderIdx, deviceIdx *smallIndex) defaultKeyer {
|
|||||||
|
|
||||||
type deviceFileKey []byte
|
type deviceFileKey []byte
|
||||||
|
|
||||||
func (k deviceFileKey) WithoutName() []byte {
|
func (k deviceFileKey) WithoutNameAndDevice() []byte {
|
||||||
return k[:keyPrefixLen+keyFolderLen+keyDeviceLen]
|
return k[:keyPrefixLen+keyFolderLen]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (k defaultKeyer) GenerateDeviceFileKey(key, folder, device, name []byte) deviceFileKey {
|
func (k defaultKeyer) GenerateDeviceFileKey(key, folder, device, name []byte) deviceFileKey {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user