diff --git a/src/os_unix.c b/src/os_unix.c index e065d717..683e6c69 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3674,7 +3674,14 @@ static int full_fsync(int fd, int fullSync, int dataOnly){ } #elif HAVE_FULLFSYNC if( fullSync ){ +#ifdef F_BARRIERFSYNC rc = osFcntl(fd, F_BARRIERFSYNC, 0); + if( rc && errno==ENOTSUP ){ + rc = osFcntl(fd, F_FULLFSYNC, 0); + } +#else + rc = osFcntl(fd, F_FULLFSYNC, 0); +#endif }else{ rc = 1; }