* Copyright (C) 1996 Andrew Tridgell
* Copyright (C) 1996 Paul Mackerras
* Copyright (C) 2001, 2002 Martin Pool <mbp@samba.org>
- * Copyright (C) 2002, 2003, 2004, 2005, 2006 Wayne Davison
+ * Copyright (C) 2002-2007 Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
char fbuf[MAXPATHLEN];
struct file_list *flist;
int64 start_write;
- int past_and_present, save_io_error = io_error;
+ int future_cnt, save_io_error = io_error;
if (send_dir_ndx < 0)
return;
/* Keep sending data until we have the requested number of
* files in the upcoming file-lists. */
- past_and_present = cur_flist->ndx_start - first_flist->ndx_start
- + cur_flist->count;
- while (file_total - past_and_present < at_least) {
+ if (cur_flist->next) {
+ flist = first_flist->prev; /* the newest flist */
+ future_cnt = flist->count
+ + flist->ndx_start - cur_flist->next->ndx_start;
+ } else
+ future_cnt = 0;
+ while (future_cnt < at_least) {
struct file_struct *file = dir_flist->files[send_dir_ndx];
int32 *dp;
int dlen;
clean_flist(flist, 0, 0);
file_total += flist->count;
+ future_cnt += flist->count;
stats.flist_size += stats.total_written - start_write;
stats.num_files += flist->count;
if (verbose > 3)