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/common/file_utils.h | |
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/common/file_utils.h')
-rw-r--r-- | src/include/common/file_utils.h | 7 |
1 files changed, 7 insertions, 0 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 */ |