mirror of
https://github.com/postgres/postgres.git
synced 2025-10-15 05:46:52 +03:00
Revise pg_pwrite_zeros()
The following changes are made to pg_write_zeros(), the API able to write series of zeros using vectored I/O: - Add of an "offset" parameter, to write the size from this position (the 'p' of "pwrite" seems to mean position, though POSIX does not outline ythat directly), hence the name of the routine is incorrect if it is not able to handle offsets. - Avoid memset() of "zbuffer" on every call. - Avoid initialization of the whole IOV array if not needed. - Group the trailing write() call with the main write() call, simplifying the function logic. Author: Andres Freund Reviewed-by: Michael Paquier, Bharath Rupireddy Discussion: https://postgr.es/m/20230215005525.mrrlmqrxzjzhaipl@awork3.anarazel.de
This commit is contained in:
@@ -2982,7 +2982,7 @@ XLogFileInitInternal(XLogSegNo logsegno, TimeLineID logtli,
|
||||
* indirect blocks are down on disk. Therefore, fdatasync(2) or
|
||||
* O_DSYNC will be sufficient to sync future writes to the log file.
|
||||
*/
|
||||
rc = pg_pwrite_zeros(fd, wal_segment_size);
|
||||
rc = pg_pwrite_zeros(fd, wal_segment_size, 0);
|
||||
|
||||
if (rc < 0)
|
||||
save_errno = errno;
|
||||
|
Reference in New Issue
Block a user