mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-05 19:09:58 +08:00
pg_fsync is fsync in WAL version.
This commit is contained in:
parent
ddeab22565
commit
92875e6f44
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/xlog_bufmgr.c,v 1.2 2000/11/08 22:09:59 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/storage/buffer/Attic/xlog_bufmgr.c,v 1.3 2000/11/10 03:53:44 vadim Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1065,6 +1065,9 @@ void
|
|||||||
BufmgrCommit(void)
|
BufmgrCommit(void)
|
||||||
{
|
{
|
||||||
LocalBufferSync();
|
LocalBufferSync();
|
||||||
|
/*
|
||||||
|
* All files created in current transaction will be fsync-ed
|
||||||
|
*/
|
||||||
smgrcommit();
|
smgrcommit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.65 2000/10/28 16:20:56 vadim Exp $
|
* $Header: /cvsroot/pgsql/src/backend/storage/file/fd.c,v 1.66 2000/11/10 03:53:44 vadim Exp $
|
||||||
*
|
*
|
||||||
* NOTES:
|
* NOTES:
|
||||||
*
|
*
|
||||||
@ -192,6 +192,7 @@ static File fileNameOpenFile(FileName fileName, int fileFlags, int fileMode);
|
|||||||
static char *filepath(char *filename);
|
static char *filepath(char *filename);
|
||||||
static long pg_nofile(void);
|
static long pg_nofile(void);
|
||||||
|
|
||||||
|
#ifndef XLOG
|
||||||
/*
|
/*
|
||||||
* pg_fsync --- same as fsync except does nothing if -F switch was given
|
* pg_fsync --- same as fsync except does nothing if -F switch was given
|
||||||
*/
|
*/
|
||||||
@ -203,6 +204,7 @@ pg_fsync(int fd)
|
|||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* BasicOpenFile --- same as open(2) except can free other FDs if needed
|
* BasicOpenFile --- same as open(2) except can free other FDs if needed
|
||||||
@ -663,7 +665,16 @@ fileNameOpenFile(FileName fileName,
|
|||||||
vfdP->fileFlags = fileFlags & ~(O_TRUNC | O_EXCL);
|
vfdP->fileFlags = fileFlags & ~(O_TRUNC | O_EXCL);
|
||||||
vfdP->fileMode = fileMode;
|
vfdP->fileMode = fileMode;
|
||||||
vfdP->seekPos = 0;
|
vfdP->seekPos = 0;
|
||||||
|
#ifdef XLOG
|
||||||
|
/*
|
||||||
|
* Have to fsync file on commit. Alternative way - log
|
||||||
|
* file creation and fsync log before actual file creation.
|
||||||
|
*/
|
||||||
|
if (fileFlags & O_CREAT)
|
||||||
|
vfdP->fdstate = FD_DIRTY;
|
||||||
|
#else
|
||||||
vfdP->fdstate = 0x0;
|
vfdP->fdstate = 0x0;
|
||||||
|
#endif
|
||||||
|
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.78 2000/11/08 22:10:00 tgl Exp $
|
* $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.79 2000/11/10 03:53:45 vadim Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -569,12 +569,14 @@ mdblindwrt(RelFileNode rnode,
|
|||||||
elog(DEBUG, "mdblindwrt: write() failed: %m");
|
elog(DEBUG, "mdblindwrt: write() failed: %m");
|
||||||
status = SM_FAIL;
|
status = SM_FAIL;
|
||||||
}
|
}
|
||||||
|
#ifndef XLOG
|
||||||
else if (dofsync &&
|
else if (dofsync &&
|
||||||
pg_fsync(fd) < 0)
|
pg_fsync(fd) < 0)
|
||||||
{
|
{
|
||||||
elog(DEBUG, "mdblindwrt: fsync() failed: %m");
|
elog(DEBUG, "mdblindwrt: fsync() failed: %m");
|
||||||
status = SM_FAIL;
|
status = SM_FAIL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (close(fd) < 0)
|
if (close(fd) < 0)
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $Id: fd.h,v 1.22 2000/06/02 03:58:31 tgl Exp $
|
* $Id: fd.h,v 1.23 2000/11/10 03:53:45 vadim Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -70,6 +70,11 @@ extern int BasicOpenFile(FileName fileName, int fileFlags, int fileMode);
|
|||||||
/* Miscellaneous support routines */
|
/* Miscellaneous support routines */
|
||||||
extern void closeAllVfds(void);
|
extern void closeAllVfds(void);
|
||||||
extern void AtEOXact_Files(void);
|
extern void AtEOXact_Files(void);
|
||||||
|
|
||||||
|
#ifdef XLOG
|
||||||
|
#define pg_fsync(fd) fsync(fd)
|
||||||
|
#else
|
||||||
extern int pg_fsync(int fd);
|
extern int pg_fsync(int fd);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* FD_H */
|
#endif /* FD_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user