summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2007-10-18 14:04:42 +0000
committerWayne Davison <wayned@samba.org>2007-10-18 14:04:42 +0000
commit37ce167996540b7971e3e966c26e0fc64a1f8dbe (patch)
tree806d4220e9067d4c4f1d1dc26460154141dd338a /io.c
parent88a7426843ea6b8ee80ea9c986ffc554600ef4e9 (diff)
downloadrsync-37ce167996540b7971e3e966c26e0fc64a1f8dbe.tar.gz
rsync-37ce167996540b7971e3e966c26e0fc64a1f8dbe.tar.bz2
rsync-37ce167996540b7971e3e966c26e0fc64a1f8dbe.zip
We can't decrement the in_progress value for a hard-linked file until
the generator gets a chance to finish the hard links.
Diffstat (limited to 'io.c')
-rw-r--r--io.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/io.c b/io.c
index 3faf83d0..cb485b85 100644
--- a/io.c
+++ b/io.c
@@ -181,7 +181,6 @@ static void got_flist_entry_status(enum festatus status, const char *buf)
struct file_list *flist = flist_for_ndx(ndx);
assert(flist != NULL);
- assert(ndx >= flist->ndx_start);
if (remove_source_files) {
active_filecnt--;
@@ -197,8 +196,10 @@ static void got_flist_entry_status(enum festatus status, const char *buf)
send_msg(MSG_SUCCESS, buf, 4, 0);
if (preserve_hard_links) {
struct file_struct *file = flist->files[ndx - flist->ndx_start];
- if (F_IS_HLINKED(file))
+ if (F_IS_HLINKED(file)) {
flist_ndx_push(&hlink_list, ndx);
+ flist->in_progress++;
+ }
}
break;
case FES_REDO: