diff options
Diffstat (limited to 'src/bin/pg_rewind/file_ops.c')
-rw-r--r-- | src/bin/pg_rewind/file_ops.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/bin/pg_rewind/file_ops.c b/src/bin/pg_rewind/file_ops.c index 589a01a4340..d6a743f7884 100644 --- a/src/bin/pg_rewind/file_ops.c +++ b/src/bin/pg_rewind/file_ops.c @@ -105,10 +105,16 @@ write_target_range(char *buf, off_t begin, size_t size) { int writelen; + errno = 0; writelen = write(dstfd, p, writeleft); if (writelen < 0) + { + /* if write didn't set errno, assume problem is no disk space */ + if (errno == 0) + errno = ENOSPC; pg_fatal("could not write file \"%s\": %s\n", dstpath, strerror(errno)); + } p += writelen; writeleft -= writelen; |