diff options
author | Michael Paquier <michael@paquier.xyz> | 2022-10-27 14:39:42 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2022-10-27 14:39:42 +0900 |
commit | 4ab8c81bd90ae442dbd092df04a12dbb7e68f562 (patch) | |
tree | e2aaec175cf393ffd0b5fcfd406834165b120fe8 /src/include | |
parent | 1b9cd69c5bdd1a331891f282106125e6f2524991 (diff) | |
download | postgresql-4ab8c81bd90ae442dbd092df04a12dbb7e68f562.tar.gz postgresql-4ab8c81bd90ae442dbd092df04a12dbb7e68f562.zip |
Move pg_pwritev_with_retry() to src/common/file_utils.c
This commit moves pg_pwritev_with_retry(), a convenience wrapper of
pg_writev() able to handle partial writes, to common/file_utils.c so
that the frontend code is able to use it. A first use-case targetted
for this routine is pg_basebackup and pg_receivewal, for the
zero-padding of a newly-initialized WAL segment. This is used currently
in the backend when the GUC wal_init_zero is enabled (default).
Author: Bharath Rupireddy
Reviewed-by: Nathan Bossart, Thomas Munro
Discussion: https://postgr.es/m/CALj2ACUq7nAb7=bJNbK3yYmp-SZhJcXFR_pLk8un6XgDzDF3OA@mail.gmail.com
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/common/file_utils.h | 7 | ||||
-rw-r--r-- | src/include/storage/fd.h | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/include/common/file_utils.h b/src/include/common/file_utils.h index 2811744c12f..2c5dbcb0b1e 100644 --- a/src/include/common/file_utils.h +++ b/src/include/common/file_utils.h @@ -24,6 +24,8 @@ typedef enum PGFileType PGFILETYPE_LNK } PGFileType; +struct iovec; /* avoid including port/pg_iovec.h here */ + #ifdef FRONTEND extern int fsync_fname(const char *fname, bool isdir); extern void fsync_pgdata(const char *pg_data, int serverVersion); @@ -37,4 +39,9 @@ extern PGFileType get_dirent_type(const char *path, bool look_through_symlinks, int elevel); +extern ssize_t pg_pwritev_with_retry(int fd, + const struct iovec *iov, + int iovcnt, + off_t offset); + #endif /* FILE_UTILS_H */ diff --git a/src/include/storage/fd.h b/src/include/storage/fd.h index 5a48fccd9c2..c0a212487d9 100644 --- a/src/include/storage/fd.h +++ b/src/include/storage/fd.h @@ -51,8 +51,6 @@ typedef enum RecoveryInitSyncMethod RECOVERY_INIT_SYNC_METHOD_SYNCFS } RecoveryInitSyncMethod; -struct iovec; /* avoid including port/pg_iovec.h here */ - typedef int File; @@ -178,10 +176,6 @@ extern int pg_fsync_no_writethrough(int fd); extern int pg_fsync_writethrough(int fd); extern int pg_fdatasync(int fd); extern void pg_flush_data(int fd, off_t offset, off_t nbytes); -extern ssize_t pg_pwritev_with_retry(int fd, - const struct iovec *iov, - int iovcnt, - off_t offset); extern int pg_truncate(const char *path, off_t length); extern void fsync_fname(const char *fname, bool isdir); extern int fsync_fname_ext(const char *fname, bool isdir, bool ignore_perm, int elevel); |