git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fdatasync the spool data file
[exim.git]
/
src
/
src
/
receive.c
diff --git
a/src/src/receive.c
b/src/src/receive.c
index ae70450681baf3b33e5e6906eb3b0366537834fb..63aded09f03662280ff730b8bb9957f5ab8f9c78 100644
(file)
--- a/
src/src/receive.c
+++ b/
src/src/receive.c
@@
-4052,7
+4052,15
@@
else
receive_messagecount++;
receive_messagecount++;
-if (fflush(spool_data_file))
+if ( fflush(spool_data_file)
+#if _POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500
+# ifdef ENABLE_DISABLE_FSYNC
+ || !disable_fsync && fdatasync(data_fd)
+# else
+ || fdatasync(data_fd)
+# endif
+#endif
+ )
{
errmsg = string_sprintf("Spool write error: %s", strerror(errno));
log_write(0, LOG_MAIN, "%s\n", errmsg);
{
errmsg = string_sprintf("Spool write error: %s", strerror(errno));
log_write(0, LOG_MAIN, "%s\n", errmsg);