mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-09 23:00:58 +00:00
Only fail after chmod error if permissions differ (e.g. on config file) (#8771)
This commit is contained in:
parent
2321d0db08
commit
2f88dafa56
@ -109,9 +109,15 @@ func (w *AtomicWriter) Close() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if infoErr == nil {
|
if infoErr == nil {
|
||||||
|
// Restore chmod setting for final file to what it was
|
||||||
if err := w.fs.Chmod(w.path, info.Mode()); err != nil {
|
if err := w.fs.Chmod(w.path, info.Mode()); err != nil {
|
||||||
w.err = err
|
// Only fail if permissions differ, since some filesystems are expected to not allow chmod (e.g. error
|
||||||
return err
|
// `operation not permitted`).
|
||||||
|
infoAfterRename, infoAfterRenameErr := w.fs.Lstat(w.path)
|
||||||
|
if infoAfterRenameErr != nil || infoAfterRename.Mode() != info.Mode() {
|
||||||
|
w.err = err
|
||||||
|
return err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user