Commit c52461f9 authored by Wayne Davison's avatar Wayne Davison

Check the error return of flush_write_file().

parent 7f459268
...@@ -247,11 +247,8 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, ...@@ -247,11 +247,8 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
sum_update(data,i); sum_update(data,i);
if (fd != -1 && write_file(fd,data,i) != i) { if (fd != -1 && write_file(fd,data,i) != i)
rsyserr(FERROR, errno, "write failed on %s", goto report_write_error;
full_fname(fname));
exit_cleanup(RERR_FILEIO);
}
offset += i; offset += i;
continue; continue;
} }
...@@ -277,7 +274,8 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, ...@@ -277,7 +274,8 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
if (inplace) { if (inplace) {
if (offset == offset2 && fd != -1) { if (offset == offset2 && fd != -1) {
flush_write_file(fd); if (flush_write_file(fd) < 0)
goto report_write_error;
offset += len; offset += len;
if (do_lseek(fd, len, SEEK_CUR) != offset) { if (do_lseek(fd, len, SEEK_CUR) != offset) {
rsyserr(FERROR, errno, rsyserr(FERROR, errno,
...@@ -288,11 +286,8 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, ...@@ -288,11 +286,8 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
continue; continue;
} }
} }
if (fd != -1 && write_file(fd, map, len) != (int)len) { if (fd != -1 && write_file(fd, map, len) != (int)len)
rsyserr(FERROR, errno, "write failed on %s", goto report_write_error;
full_fname(fname));
exit_cleanup(RERR_FILEIO);
}
offset += len; offset += len;
} }
...@@ -307,6 +302,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, ...@@ -307,6 +302,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
end_progress(total_size); end_progress(total_size);
if (fd != -1 && offset > 0 && sparse_end(fd) != 0) { if (fd != -1 && offset > 0 && sparse_end(fd) != 0) {
report_write_error:
rsyserr(FERROR, errno, "write failed on %s", rsyserr(FERROR, errno, "write failed on %s",
full_fname(fname)); full_fname(fname));
exit_cleanup(RERR_FILEIO); exit_cleanup(RERR_FILEIO);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment