sum_update(data,i);
- if (fd != -1 && write_file(fd,data,i) != i) {
- rsyserr(FERROR, errno, "write failed on %s",
- full_fname(fname));
- exit_cleanup(RERR_FILEIO);
- }
+ if (fd != -1 && write_file(fd,data,i) != i)
+ goto report_write_error;
offset += i;
continue;
}
if (inplace) {
if (offset == offset2 && fd != -1) {
- flush_write_file(fd);
+ if (flush_write_file(fd) < 0)
+ goto report_write_error;
offset += len;
if (do_lseek(fd, len, SEEK_CUR) != offset) {
rsyserr(FERROR, errno,
continue;
}
}
- if (fd != -1 && write_file(fd, map, len) != (int)len) {
- rsyserr(FERROR, errno, "write failed on %s",
- full_fname(fname));
- exit_cleanup(RERR_FILEIO);
- }
+ if (fd != -1 && write_file(fd, map, len) != (int)len)
+ goto report_write_error;
offset += len;
}
end_progress(total_size);
if (fd != -1 && offset > 0 && sparse_end(fd) != 0) {
+ report_write_error:
rsyserr(FERROR, errno, "write failed on %s",
full_fname(fname));
exit_cleanup(RERR_FILEIO);