lib/model: Add fsync of files and directories, option to disable (fixes #3711)

This commit is contained in:
Unrud
2016-11-21 18:09:29 +01:00
committed by Jakob Borg
parent 51e10e344d
commit 1574b7d834
8 changed files with 126 additions and 1 deletions

View File

@@ -77,6 +77,11 @@ func (w *AtomicWriter) Close() error {
// Try to not leave temp file around, but ignore error.
defer os.Remove(w.next.Name())
if err := w.next.Sync(); err != nil {
w.err = err
return err
}
if err := w.next.Close(); err != nil {
w.err = err
return err
@@ -97,6 +102,8 @@ func (w *AtomicWriter) Close() error {
return err
}
SyncDir(filepath.Dir(w.next.Name()))
// Set w.err to return appropriately for any future operations.
w.err = ErrClosed