summaryrefslogtreecommitdiff
path: root/receiver.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2010-11-06 09:57:23 -0700
committerWayne Davison <wayned@samba.org>2010-11-06 10:13:16 -0700
commit96e051c86abc046034b371b75709ecb597497c63 (patch)
tree7e0b2e86f7f3a2456f269abc0d261f18a6a632bf /receiver.c
parent55f767c5caab53386e17686c69dd1bfe5afe752e (diff)
downloadrsync-96e051c86abc046034b371b75709ecb597497c63.tar.gz
Use ftruncate() at the end of a --sparse file.
Fixes bug 7337.
Diffstat (limited to 'receiver.c')
-rw-r--r--receiver.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/receiver.c b/receiver.c
index fc3e40c1..ba3566b8 100644
--- a/receiver.c
+++ b/receiver.c
@@ -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));