lib/model: Leave temp file in place when final rename fails (fixes #3146)

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3148
This commit is contained in:
Jakob Borg 2016-05-22 09:06:07 +00:00 committed by Audrius Butkevicius
parent f6cc344623
commit 44290a66b7

View File

@ -1297,8 +1297,9 @@ func (f *rwFolder) performFinish(state *sharedPullerState) error {
}
}
// Replace the original content with the new one
if err := osutil.Rename(state.tempName, state.realName); err != nil {
// Replace the original content with the new one. If it didn't work,
// leave the temp file in place for reuse.
if err := osutil.TryRename(state.tempName, state.realName); err != nil {
return err
}