@@ -3423,6 +3423,7 @@ XLogFileCopy(TimeLineID destTLI, XLogSegNo destsegno,
3423
3423
int srcfd ;
3424
3424
int fd ;
3425
3425
int nbytes ;
3426
+ off_t offset = 0 ;
3426
3427
3427
3428
/*
3428
3429
* Open the source file
@@ -3471,7 +3472,8 @@ XLogFileCopy(TimeLineID destTLI, XLogSegNo destsegno,
3471
3472
if (nread > sizeof (buffer ))
3472
3473
nread = sizeof (buffer );
3473
3474
pgstat_report_wait_start (WAIT_EVENT_WAL_COPY_READ );
3474
- r = read (srcfd , buffer .data , nread );
3475
+ r = xlog_smgr -> seg_read (srcfd , buffer .data , nread , offset ,
3476
+ srcTLI , srcsegno , wal_segment_size );
3475
3477
if (r != nread )
3476
3478
{
3477
3479
if (r < 0 )
@@ -3489,7 +3491,7 @@ XLogFileCopy(TimeLineID destTLI, XLogSegNo destsegno,
3489
3491
}
3490
3492
errno = 0 ;
3491
3493
pgstat_report_wait_start (WAIT_EVENT_WAL_COPY_WRITE );
3492
- if ((int ) write (fd , buffer .data , sizeof (buffer )) != (int ) sizeof (buffer ))
3494
+ if ((int ) xlog_smgr -> seg_write (fd , buffer .data , sizeof (buffer ), offset , destTLI , destsegno ) != (int ) sizeof (buffer ))
3493
3495
{
3494
3496
int save_errno = errno ;
3495
3497
@@ -3505,6 +3507,7 @@ XLogFileCopy(TimeLineID destTLI, XLogSegNo destsegno,
3505
3507
errmsg ("could not write to file \"%s\": %m" , tmppath )));
3506
3508
}
3507
3509
pgstat_report_wait_end ();
3510
+ offset += sizeof (buffer );
3508
3511
}
3509
3512
3510
3513
pgstat_report_wait_start (WAIT_EVENT_WAL_COPY_SYNC );
0 commit comments