From ddfa82e990c309fb4e37bb07a2efaec0ae878486 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Tue, 24 Mar 2020 12:51:17 +0100 Subject: [PATCH] lib/model: Unset local flag on deleted files (fixes #6436) (#6449) --- lib/model/folder_recvonly.go | 4 +++- lib/model/folder_sendonly.go | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/model/folder_recvonly.go b/lib/model/folder_recvonly.go index 66a1d0ea2..2973e4c80 100644 --- a/lib/model/folder_recvonly.go +++ b/lib/model/folder_recvonly.go @@ -64,6 +64,8 @@ func newReceiveOnlyFolder(model *model, fset *db.FileSet, ignores *ignore.Matche } func (f *receiveOnlyFolder) Revert() { + l.Infof("Reverting folder %v", f.Description) + f.setState(FolderScanning) defer f.setState(FolderIdle) @@ -89,6 +91,7 @@ func (f *receiveOnlyFolder) Revert() { return true } + fi.LocalFlags &^= protocol.FlagLocalReceiveOnly if len(fi.Version.Counters) == 1 && fi.Version.Counters[0].ID == f.shortID { // We are the only device mentioned in the version vector so the // file must originate here. A revert then means to delete it. @@ -113,7 +116,6 @@ func (f *receiveOnlyFolder) Revert() { // either, so we will not create a conflict copy of our local // changes. fi.Version = protocol.Vector{} - fi.LocalFlags &^= protocol.FlagLocalReceiveOnly } batch = append(batch, fi) diff --git a/lib/model/folder_sendonly.go b/lib/model/folder_sendonly.go index 8b83a94ee..9aaabd7f2 100644 --- a/lib/model/folder_sendonly.go +++ b/lib/model/folder_sendonly.go @@ -97,6 +97,8 @@ func (f *sendOnlyFolder) pull() bool { } func (f *sendOnlyFolder) Override() { + l.Infof("Overriding global state on folder %v", f.Description) + f.setState(FolderScanning) batch := make([]protocol.FileInfo, 0, maxBatchSizeFiles) batchSizeBytes := 0