diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c index 320b1ea..fd7f7fa 100644 --- a/libraries/libmdb/mdb.c +++ b/libraries/libmdb/mdb.c @@ -200,6 +200,13 @@ #ifndef MDB_DSYNC # define MDB_DSYNC O_DSYNC #endif +#endif + +/** Function for flushing the data of a file. Define this to fsync + * if fdatasync() is not supported. + */ +#ifndef MDB_FDATASYNC +# define MDB_FDATASYNC fdatasync #endif /** A page number in the database. @@ -1283,7 +1290,7 @@ mdb_env_sync(MDB_env *env, int force) { int rc = 0; if (force || !F_ISSET(env->me_flags, MDB_NOSYNC)) { - if (fdatasync(env->me_fd)) + if (MDB_FDATASYNC(env->me_fd)) rc = ErrCode(); } return rc;