aboutsummaryrefslogtreecommitdiff
path: root/src/include/common/file_utils.h
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2023-12-12 10:28:46 +1300
committerThomas Munro <tmunro@postgresql.org>2023-12-12 10:57:18 +1300
commit0c6be59f5e34f44b20d9ec3ffb58c1d9a0bf985e (patch)
treec4a8d36502194629edc76f8e4b4561df7ce3673b /src/include/common/file_utils.h
parentbaf7c93ed583949d837bc13f24a15a0efbcb1ae7 (diff)
downloadpostgresql-0c6be59f5e34f44b20d9ec3ffb58c1d9a0bf985e.tar.gz
postgresql-0c6be59f5e34f44b20d9ec3ffb58c1d9a0bf985e.zip
Provide helper for retrying partial vectored I/O.
compute_remaining_iovec() is a re-usable routine for retrying after pg_readv() or pg_writev() reports a short transfer. This will gain new users in a later commit, but can already replace the open-coded equivalent code in the existing pg_pwritev_with_retry() function. Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi> Discussion: https://postgr.es/m/CA+hUKGJkOiOCa+mag4BF+zHo7qo=o9CFheB8=g6uT5TUm2gkvA@mail.gmail.com
Diffstat (limited to 'src/include/common/file_utils.h')
-rw-r--r--src/include/common/file_utils.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/include/common/file_utils.h b/src/include/common/file_utils.h
index 3bb20170cbd..02a940e3102 100644
--- a/src/include/common/file_utils.h
+++ b/src/include/common/file_utils.h
@@ -46,6 +46,11 @@ extern PGFileType get_dirent_type(const char *path,
bool look_through_symlinks,
int elevel);
+extern int compute_remaining_iovec(struct iovec *destination,
+ const struct iovec *source,
+ int iovcnt,
+ size_t transferred);
+
extern ssize_t pg_pwritev_with_retry(int fd,
const struct iovec *iov,
int iovcnt,