aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-08-01 16:39:27 +0900
committerMichael Paquier <michael@paquier.xyz>2022-08-01 16:39:27 +0900
commit523926dea97f360f1f785853eea49e4dc4a6e1e9 (patch)
tree6d673be64338e87790ed855db0eefb99b1a9a867 /src
parente71d4254f710bef53fa40d0b49b5af9bad10ce40 (diff)
downloadpostgresql-523926dea97f360f1f785853eea49e4dc4a6e1e9.tar.gz
postgresql-523926dea97f360f1f785853eea49e4dc4a6e1e9.zip
Fix error reporting after ioctl() call with pg_upgrade --clone
errno was not reported correctly after attempting to clone a file, leading to incorrect error reports. While scanning through the code, I have not noticed any similar mistakes. Error introduced in 3a769d8. Author: Justin Pryzby Discussion: https://postgr.es/m/20220731134135.GY15006@telsasoft.com Backpatch-through: 12
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_upgrade/file.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/bin/pg_upgrade/file.c b/src/bin/pg_upgrade/file.c
index 1b34ee09fa6..142f69059e6 100644
--- a/src/bin/pg_upgrade/file.c
+++ b/src/bin/pg_upgrade/file.c
@@ -57,9 +57,11 @@ cloneFile(const char *src, const char *dst,
if (ioctl(dest_fd, FICLONE, src_fd) < 0)
{
+ int save_errno = errno;
+
unlink(dst);
pg_fatal("error while cloning relation \"%s.%s\" (\"%s\" to \"%s\"): %s\n",
- schemaName, relName, src, dst, strerror(errno));
+ schemaName, relName, src, dst, strerror(save_errno));
}
close(src_fd);