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
pull/106/head
Michael Paquier 4 years ago
parent b76e136ceb
commit aadaaeff4c
  1. 4
      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);

Loading…
Cancel
Save