X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/e5f35681e6f88d1b716b19ff7c9c77991207df08..2ad3c71777c90aa65813f89e57ac6412e73b36db:/io.c diff --git a/io.c b/io.c index a19017a6..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: @@ -1861,6 +1862,8 @@ void start_write_batch(int fd) * actual communication so far depends on whether a daemon * is involved. */ write_int(batch_fd, protocol_version); + if (protocol_version >= 30) + write_byte(batch_fd, inc_recurse); write_int(batch_fd, checksum_seed); if (am_sender)