aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Maxwell <greg@xiph.org>2013-09-15 20:14:06 -0700
committerGregory Maxwell <greg@xiph.org>2013-09-15 20:34:29 -0700
commite7bad10c12ce9b5d424ac273c1c977b88469d46c (patch)
treeae1d4e23d07b29de67ee49c441ace816fee0a495
parent2975db76b3c6ce5f70d7dc547e74c61543191b22 (diff)
More fixes for blockchain corruption on OSX.
As we'd previously learned, OSX's fsync is a data eating lie. Since 0.8.4 we're still getting some reports of disk corruption on OSX but now all of it looks like the block files have gotten out of sync with the database. It turns out that we were still using fsync() on the block files, so this isn't surprising.
-rw-r--r--src/util.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp
index 136a035485..16c8f3fc17 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1156,6 +1156,8 @@ void FileCommit(FILE *fileout)
#else
#if defined(__linux__) || defined(__NetBSD__)
fdatasync(fileno(fileout));
+ #elif defined(__APPLE__) && defined(F_FULLFSYNC)
+ fcntl(fileno(fileout), F_FULLFSYNC, 0);
#else
fsync(fileno(fileout));
#endif