diff --git a/src/unix/fs.c b/src/unix/fs.c index d7456228..ec24e8b3 100644 --- a/src/unix/fs.c +++ b/src/unix/fs.c @@ -447,8 +447,11 @@ int uv_fs_fsync(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) { int uv_fs_fdatasync(uv_loop_t* loop, uv_fs_t* req, uv_file file, uv_fs_cb cb) { char* path = NULL; -#ifdef __FreeBSD__ - /* freebsd doesn't have fdatasync, do a full fsync instead. */ +#if defined(__FreeBSD__) \ + || (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1060) + /* freebsd and pre-10.6 darwin don't have fdatasync, + * do a full fsync instead. + */ WRAP_EIO(UV_FS_FDATASYNC, eio_fdatasync, fsync, ARGS1(file)) #else WRAP_EIO(UV_FS_FDATASYNC, eio_fdatasync, fdatasync, ARGS1(file))