mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-30 13:01:20 +02:00
Update fsync test to match new O_DIRECT behavior.
Greg Smith
This commit is contained in:
parent
eb1fbbe5c4
commit
3455b0a5d5
@ -14,6 +14,7 @@
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#define FSYNC_FILENAME "./test_fsync.out"
|
||||
@ -21,21 +22,34 @@
|
||||
#define FSYNC_FILENAME "/var/tmp/test_fsync.out"
|
||||
#endif
|
||||
|
||||
/* O_SYNC and O_FSYNC are the same */
|
||||
#if defined(O_SYNC)
|
||||
#define OPEN_SYNC_FLAG O_SYNC
|
||||
#elif defined(O_FSYNC)
|
||||
#define OPEN_SYNC_FLAG O_FSYNC
|
||||
#elif defined(O_DSYNC)
|
||||
#define OPEN_DATASYNC_FLAG O_DSYNC
|
||||
/* This logic comes from src/backend/access/transam/xlog.c where it's
|
||||
better documented */
|
||||
#ifdef O_DIRECT
|
||||
#define PG_O_DIRECT O_DIRECT
|
||||
#else
|
||||
#define PG_O_DIRECT 0
|
||||
#endif
|
||||
|
||||
#if defined(O_SYNC)
|
||||
#define BARE_OPEN_SYNC_FLAG O_SYNC
|
||||
#elif defined(O_FSYNC)
|
||||
#define BARE_OPEN_SYNC_FLAG O_FSYNC
|
||||
#endif
|
||||
#ifdef BARE_OPEN_SYNC_FLAG
|
||||
#define OPEN_SYNC_FLAG (BARE_OPEN_SYNC_FLAG | PG_O_DIRECT)
|
||||
#endif
|
||||
|
||||
#if defined(O_DSYNC)
|
||||
#if defined(OPEN_SYNC_FLAG)
|
||||
#if defined(O_DSYNC) && (O_DSYNC != OPEN_SYNC_FLAG)
|
||||
#define OPEN_DATASYNC_FLAG O_DSYNC
|
||||
#if O_DSYNC != BARE_OPEN_SYNC_FLAG
|
||||
#define OPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT)
|
||||
#endif
|
||||
#else
|
||||
#define OPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#define WAL_FILE_SIZE (16 * 1024 * 1024)
|
||||
|
||||
void die(char *str);
|
||||
|
Loading…
Reference in New Issue
Block a user