]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix error reporting after ioctl() call with pg_upgrade --clone
authorMichael Paquier <michael@paquier.xyz>
Mon, 1 Aug 2022 07:39:16 +0000 (16:39 +0900)
committerMichael Paquier <michael@paquier.xyz>
Mon, 1 Aug 2022 07:39:16 +0000 (16:39 +0900)
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

src/bin/pg_upgrade/file.c

index b84868c7510b10747b15687174b409486a625959..e16c2e009eba7cfb2391b71fa25717548596c654 100644 (file)
@@ -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);