- } else {
- flush_write_file(fd);
- if (do_lseek(fd,(OFF_T)len,SEEK_CUR) != offset+len) {
- rprintf(FERROR, "lseek failed on %s: %s, %lli, %lli, %i\n",
- full_fname(fname), strerror(errno),
- do_lseek(fd, 0, SEEK_CUR),
- offset + len, i);
- exit_cleanup(RERR_FILEIO);
+ if (seekto && fd != -1) {
+ flush_write_file(fd);
+ if (do_lseek(fd, seekto, SEEK_SET) != seekto) {
+ rsyserr(FERROR, errno,
+ "lseek failed on %s",
+ full_fname(fname));
+ exit_cleanup(RERR_FILEIO);
+ }
+ seekto = 0;