diff options
author | Wayne Davison <wayned@samba.org> | 2010-11-06 09:57:23 -0700 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2010-11-06 10:13:16 -0700 |
commit | 96e051c86abc046034b371b75709ecb597497c63 (patch) | |
tree | 7e0b2e86f7f3a2456f269abc0d261f18a6a632bf /receiver.c | |
parent | 55f767c5caab53386e17686c69dd1bfe5afe752e (diff) | |
download | rsync-96e051c86abc046034b371b75709ecb597497c63.tar.gz |
Use ftruncate() at the end of a --sparse file.
Fixes bug 7337.
Diffstat (limited to 'receiver.c')
-rw-r--r-- | receiver.c | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -322,8 +322,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, goto report_write_error; #ifdef HAVE_FTRUNCATE - if (inplace && fd != -1 - && ftruncate(fd, offset) < 0) { + if (inplace && fd != -1 && do_ftruncate(fd, offset) < 0) { rsyserr(FERROR_XFER, errno, "ftruncate failed on %s", full_fname(fname)); } @@ -332,7 +331,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r, if (INFO_GTE(PROGRESS, 1)) end_progress(total_size); - if (fd != -1 && offset > 0 && sparse_end(fd) != 0) { + if (fd != -1 && offset > 0 && sparse_end(fd, offset) != 0) { report_write_error: rsyserr(FERROR_XFER, errno, "write failed on %s", full_fname(fname)); |