summaryrefslogtreecommitdiff
path: root/sender.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2009-10-29 17:35:50 -0700
committerWayne Davison <wayned@samba.org>2009-10-29 17:35:54 -0700
commitfe16d9a67db9aeaa424bd35976eefa2a11861a3b (patch)
tree29907197cc702c4d2de265ad6a50cc172038302f /sender.c
parent23a0d1e200c7f23c4d8ca236f807c253a666009a (diff)
downloadrsync-fe16d9a67db9aeaa424bd35976eefa2a11861a3b.tar.gz
Fix a hang when dealing with really large numbers of files
in an incremental recursion scan.
Diffstat (limited to 'sender.c')
-rw-r--r--sender.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sender.c b/sender.c
index 98612965..7aadfcb6 100644
--- a/sender.c
+++ b/sender.c
@@ -42,6 +42,7 @@ extern int make_backups;
extern int inplace;
extern int batch_fd;
extern int write_batch;
+extern int file_old_total;
extern struct stats stats;
extern struct file_list *cur_flist, *first_flist, *dir_flist;
@@ -197,8 +198,11 @@ void send_files(int f_in, int f_out)
end_progress(0);
}
if (inc_recurse && first_flist) {
+ file_old_total -= first_flist->used;
flist_free(first_flist);
if (first_flist) {
+ if (first_flist == cur_flist)
+ file_old_total = cur_flist->used;
write_ndx(f_out, NDX_DONE);
continue;
}