Remove useless LZ4 system call on failure when writing file header
authorMichael Paquier <[email protected]>
Wed, 24 Nov 2021 11:12:54 +0000 (20:12 +0900)
committerMichael Paquier <[email protected]>
Wed, 24 Nov 2021 11:12:54 +0000 (20:12 +0900)
If an error occurs when writing the LZ4 file header, LZ4F_compressEnd()
was called in the error code path of write(), followed by
LZ4F_freeCompressionContext() to finish the cleanup.  The code as-is was
not broken, but the LZ4F_compressEnd() proves to not be necessary as
there are no contents to flush at this stage, so remove it.

Per gripe from Jeevan Ladhe and Robert Haas.

Discussion: https://postgr.es/m/CAOgcT0PE33wbD7giAT1OSkNJt=p-vu8huq++qh=ny9O=SCP5aA@mail.gmail.com

src/bin/pg_basebackup/walmethods.c

index fe6b034637aa6b40344e2e8515d4703b0eba3f95..affdc5055fb6f9db97b457cf9dd1c8dac90534e3 100644 (file)
@@ -193,7 +193,6 @@ dir_open_for_write(const char *pathname, const char *temp_suffix, size_t pad_to_
                {
                        /* If write didn't set errno, assume problem is no disk space */
                        dir_data->lasterrno = errno ? errno : ENOSPC;
-                       (void) LZ4F_compressEnd(ctx, lz4buf, lz4bufsize, NULL);
                        (void) LZ4F_freeCompressionContext(ctx);
                        pg_free(lz4buf);
                        close(fd);