in internal/vfs/osfs/sync_darwin.go [44:66]
func (f *File) doSync(flags vfs.SyncFlag) error {
for {
_, err := unix.FcntlInt(f.File.Fd(), unix.F_FULLFSYNC, 0)
err = normalizeSysError(err)
if err == nil || isIOError(err) {
return err
}
if isRetryErr(err) {
continue
}
// XXX: shall we 'guard' the second fsync via ENOTTY, EINVAL, ENXIO ?
// Question: What happens to the error status when calling fsync,
// if F_FULLFSYNC did actually fail due to an IO error, not
// captured by isIOError?
err = f.File.Sync()
if isRetryErr(err) {
continue
}
return err
}
}