diff options
author | unknown <serg@sergbook.mysql.com> | 2005-01-06 19:32:16 +0200 |
---|---|---|
committer | unknown <serg@sergbook.mysql.com> | 2005-01-06 19:32:16 +0200 |
commit | 382cc831de2ef50966fd3fd2b8157bcc5727dde3 (patch) | |
tree | bc5f2396178536c669ed27714be84b79612c0f6b /innobase/os | |
parent | 6b584127af84fe362539af068a505fc3f5e28925 (diff) | |
parent | 4532a89f0dc9d091dcfb408d0b225d118a9576f6 (diff) | |
download | mariadb-git-382cc831de2ef50966fd3fd2b8157bcc5727dde3.tar.gz |
merged
BitKeeper/etc/ignore:
auto-union
include/my_pthread.h:
Auto merged
innobase/os/os0file.c:
Auto merged
scripts/mysqld_safe.sh:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql-common/client.c:
merged manually
Diffstat (limited to 'innobase/os')
-rw-r--r-- | innobase/os/os0file.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/innobase/os/os0file.c b/innobase/os/os0file.c index e0d822b016f..ed3c0e53c12 100644 --- a/innobase/os/os0file.c +++ b/innobase/os/os0file.c @@ -1767,7 +1767,21 @@ os_file_flush( #else int ret; -#ifdef HAVE_FDATASYNC +#ifdef HAVE_DARWIN_THREADS + /* Apple has disabled fsync() for internal disk drives in OS X. That + caused corruption for a user when he tested a power outage. Let us in + OS X use a nonstandard flush method recommended by an Apple + engineer. */ + + ret = fcntl(file, F_FULLFSYNC, NULL); + + if (ret) { + /* If we are not on a file system that supports this, then + fall back to a plain fsync. */ + + ret = fsync(file); + } +#elif HAVE_FDATASYNC ret = fdatasync(file); #else /* fprintf(stderr, "Flushing to file %p\n", file); */ |