浏览代码

lib/model: Prevent localflag flipflopping on del. item (ref #6865) (#6919)

Simon Frei 5 年之前
父节点
当前提交
b628460930
共有 1 个文件被更改,包括 5 次插入5 次删除
  1. 5 5
      lib/model/folder.go

+ 5 - 5
lib/model/folder.go

@@ -637,11 +637,11 @@ func (f *folder) scanSubdirs(subDirs []string) error {
 				l.Debugln("marking deleted item that doesn't exist anywhere as not receive-only", file)
 				l.Debugln("marking deleted item that doesn't exist anywhere as not receive-only", file)
 				batchAppend(file.ConvertDeletedToFileInfo(), snap)
 				batchAppend(file.ConvertDeletedToFileInfo(), snap)
 				changes++
 				changes++
-			case file.IsDeleted() && file.LocalFlags != f.localFlags:
-				// No need to bump the version for a file that was
-				// and is deleted and just the local flags changed.
-				file.LocalFlags = f.localFlags
-				l.Debugln("changing localflags on deleted item", file)
+			case file.IsDeleted() && file.IsReceiveOnlyChanged() && f.Type != config.FolderTypeReceiveOnly:
+				// No need to bump the version for a file that was and is
+				// deleted and just the folder type/local flags changed.
+				file.LocalFlags &^= protocol.FlagLocalReceiveOnly
+				l.Debugln("removing receive-only flag on deleted item", file)
 				batchAppend(file.ConvertDeletedToFileInfo(), snap)
 				batchAppend(file.ConvertDeletedToFileInfo(), snap)
 				changes++
 				changes++
 			}
 			}