From 31be810eb63a0b1e59126360a741c8d99e660a80 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 9 May 2019 22:20:29 +0200 Subject: [PATCH] lib/model: Don't fail operation when fsync() fails (fixes #5704) (#5705) --- lib/model/sharedpullerstate.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/model/sharedpullerstate.go b/lib/model/sharedpullerstate.go index 7c239e7e..45200332 100644 --- a/lib/model/sharedpullerstate.go +++ b/lib/model/sharedpullerstate.go @@ -280,13 +280,15 @@ func (s *sharedPullerState) finalClose() (bool, error) { } if s.fd != nil { - // This is our error if we weren't errored before. Otherwise we - // keep the earlier error. - if fsyncErr := s.fd.Sync(); fsyncErr != nil && s.err == nil { - s.err = fsyncErr + if err := s.fd.Sync(); err != nil { + // Sync() is nice if it works but not worth failing the + // operation over if it fails. + l.Debugf("fsync %q failed: %v", s.tempName, err) } - if closeErr := s.fd.Close(); closeErr != nil && s.err == nil { - s.err = closeErr + + if err := s.fd.Close(); err != nil && s.err == nil { + // This is our error as we weren't errored before. + s.err = err } s.fd = nil }