mirror of
https://github.com/postgres/postgres.git
synced 2025-11-15 03:41:20 +03:00
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
This commit is contained in:
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user