Fix compilation on Linux kernels or glibc versions lacking sync_file_range().
This fixes issue #667. Many thanks to Didier Spezia for the fix.
This commit is contained in:
parent
d693094a61
commit
05a164d235
13
src/config.h
13
src/config.h
@ -55,6 +55,19 @@
|
|||||||
/* Define rdb_fsync_range to sync_file_range() on Linux, otherwise we use
|
/* Define rdb_fsync_range to sync_file_range() on Linux, otherwise we use
|
||||||
* the plain fsync() call. */
|
* the plain fsync() call. */
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
#include <linux/version.h>
|
||||||
|
#ifdef __GLIBC__
|
||||||
|
#if (LINUX_VERSION_CODE >= 0x020617 && GLIBC_VERSION_AT_LEAST(2, 6))
|
||||||
|
#define HAVE_SYNC_FILE_RANGE 1
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if (LINUX_VERSION_CODE >= 0x020617)
|
||||||
|
#define HAVE_SYNC_FILE_RANGE 1
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SYNC_FILE_RANGE
|
||||||
#define rdb_fsync_range(fd,off,size) sync_file_range(fd,off,size,SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE)
|
#define rdb_fsync_range(fd,off,size) sync_file_range(fd,off,size,SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE)
|
||||||
#else
|
#else
|
||||||
#define rdb_fsync_range(fd,off,size) fsync(fd)
|
#define rdb_fsync_range(fd,off,size) fsync(fd)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user