From 0648fb06266e1f5c82820f6b0ad182622adc4a14 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Thu, 25 Jun 2020 20:23:59 +0200 Subject: [PATCH] lib/model: Don't force rescan already changed items (#6798) --- lib/model/folder.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/model/folder.go b/lib/model/folder.go index 1e9d7e150..d2a29a8c4 100644 --- a/lib/model/folder.go +++ b/lib/model/folder.go @@ -953,9 +953,13 @@ func (f *folder) updateLocals(fs []protocol.FileInfo) { f.fset.Update(protocol.LocalDeviceID, fs) filenames := make([]string, len(fs)) + f.forcedRescanPathsMut.Lock() for i, file := range fs { filenames[i] = file.Name + // No need to rescan a file that was changed since anyway. + delete(f.forcedRescanPaths, file.Name) } + f.forcedRescanPathsMut.Unlock() f.evLogger.Log(events.LocalIndexUpdated, map[string]interface{}{ "folder": f.ID, @@ -1005,6 +1009,9 @@ func (f *folder) handleForcedRescans() { } f.forcedRescanPaths = make(map[string]struct{}) f.forcedRescanPathsMut.Unlock() + if len(paths) == 0 { + return + } batch := newFileInfoBatch(func(fs []protocol.FileInfo) error { f.fset.Update(protocol.LocalDeviceID, fs)