Fix errno check based on EINTR in pg_flush_data()

Upon a failure of sync_file_range(), EINTR was checked based on the
returned result of the routine rather than its errno.  sync_file_range()
returns -1 on failure, making the check a no-op, invalidating the retry
attempt in this case.

Oversight in 0d369ac650.

Author: DaeMyung Kang <charsyam@gmail.com>
Discussion: https://postgr.es/m/20260429151811.1810874-1-charsyam@gmail.com
Backpatch-through: 16
master
Michael Paquier 1 week ago
parent ac59a90bef
commit 5941e7f092
  1. 2
      src/backend/storage/file/fd.c

@ -563,7 +563,7 @@ retry:
{
int elevel;
if (rc == EINTR)
if (errno == EINTR)
goto retry;
/*

Loading…
Cancel
Save