Don't use elog() in src/port/pwrite.c.
authorThomas Munro <tmunro@postgresql.org>
Wed, 13 Jan 2021 06:11:09 +0000 (19:11 +1300)
committerThomas Munro <tmunro@postgresql.org>
Wed, 13 Jan 2021 06:34:14 +0000 (19:34 +1300)
Nothing broke because of this oversight yet, but it would fail to link
if we tried to use pg_pwrite() in frontend code on a system that lacks
pwrite().  Use an assertion instead.  Also pgindent while here.

Discussion: https://postgr.es/m/CA%2BhUKGL57RvoQsS35TVPnQoPYqbtBixsdRhynB8NpcUKpHTTtg%40mail.gmail.com

src/port/pwrite.c

index e029f44bc0ce030f1ca87403aa674bacfdc1b268..a98343ec05b70614befe29c952dbc1593b500d00 100644 (file)
@@ -70,8 +70,8 @@ pg_pwritev(int fd, const struct iovec *iov, int iovcnt, off_t offset)
                return -1;
        return writev(fd, iov, iovcnt);
 #else
-       ssize_t         sum = 0;
-       ssize_t         part;
+       ssize_t         sum = 0;
+       ssize_t         part;
 
        for (int i = 0; i < iovcnt; ++i)
        {
@@ -137,14 +137,14 @@ pg_pwritev_with_retry(int fd, const struct iovec *iov, int iovcnt, off_t offset)
                /* Are they all done? */
                if (iovcnt == 0)
                {
-                       if (part > 0)
-                               elog(ERROR, "unexpectedly wrote more than requested");
+                       /* We don't expect the kernel to write more than requested. */
+                       Assert(part == 0);
                        break;
                }
 
                /*
-                * Move whatever's left to the front of our mutable copy and adjust the
-                * leading iovec.
+                * Move whatever's left to the front of our mutable copy and adjust
+                * the leading iovec.
                 */
                Assert(iovcnt > 0);
                memmove(iov_copy, iov, sizeof(*iov) * iovcnt);