lib/model: Add option to disable fsync (#6588)
* lib/model: Add option to disable fsync * Fix test * Dont open stuff for no reason
This commit is contained in:
@@ -1082,7 +1082,7 @@ func (f *sendReceiveFolder) handleFile(file protocol.FileInfo, snap *db.Snapshot
|
||||
"action": "update",
|
||||
})
|
||||
|
||||
s := newSharedPullerState(file, f.fs, f.folderID, tempName, blocks, reused, f.IgnorePerms || file.NoPermissions, hasCurFile, curFile, !f.DisableSparseFiles)
|
||||
s := newSharedPullerState(file, f.fs, f.folderID, tempName, blocks, reused, f.IgnorePerms || file.NoPermissions, hasCurFile, curFile, !f.DisableSparseFiles, !f.DisableFsync)
|
||||
|
||||
l.Debugf("%v need file %s; copy %d, reused %v", f, file.Name, len(blocks), len(reused))
|
||||
|
||||
@@ -1581,15 +1581,17 @@ func (f *sendReceiveFolder) dbUpdaterRoutine(dbUpdateChan <-chan dbUpdateJob) {
|
||||
// sync directories
|
||||
for dir := range changedDirs {
|
||||
delete(changedDirs, dir)
|
||||
fd, err := f.fs.Open(dir)
|
||||
if err != nil {
|
||||
l.Debugf("fsync %q failed: %v", dir, err)
|
||||
continue
|
||||
if !f.FolderConfiguration.DisableFsync {
|
||||
fd, err := f.fs.Open(dir)
|
||||
if err != nil {
|
||||
l.Debugf("fsync %q failed: %v", dir, err)
|
||||
continue
|
||||
}
|
||||
if err := fd.Sync(); err != nil {
|
||||
l.Debugf("fsync %q failed: %v", dir, err)
|
||||
}
|
||||
fd.Close()
|
||||
}
|
||||
if err := fd.Sync(); err != nil {
|
||||
l.Debugf("fsync %q failed: %v", dir, err)
|
||||
}
|
||||
fd.Close()
|
||||
}
|
||||
|
||||
// All updates to file/folder objects that originated remotely
|
||||
|
||||
Reference in New Issue
Block a user