Prechádzať zdrojové kódy

lib/model: Fix removal of a marker when there are still folders referencing it (#6114)

Ruslan Yevdokymov 6 rokov pred
rodič
commit
3b5dff3f34
1 zmenil súbory, kde vykonal 11 pridanie a 2 odobranie
  1. 11 2
      lib/model/model.go

+ 11 - 2
lib/model/model.go

@@ -389,8 +389,17 @@ func (m *model) RemoveFolder(cfg config.FolderConfiguration) {
 	m.fmut.Lock()
 	defer m.fmut.Unlock()
 
-	// Delete syncthing specific files
-	cfg.Filesystem().RemoveAll(config.DefaultMarkerName)
+	isPathUnique := true
+	for folderID, folderCfg := range m.folderCfgs {
+		if folderID != cfg.ID && folderCfg.Path == cfg.Path {
+			isPathUnique = false
+			break
+		}
+	}
+	if isPathUnique {
+		// Delete syncthing specific files
+		cfg.Filesystem().RemoveAll(config.DefaultMarkerName)
+	}
 
 	m.tearDownFolderLocked(cfg, fmt.Errorf("removing folder %v", cfg.Description()))
 	// Remove it from the database