From 37ce167996540b7971e3e966c26e0fc64a1f8dbe Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Thu, 18 Oct 2007 14:04:42 +0000 Subject: [PATCH] We can't decrement the in_progress value for a hard-linked file until the generator gets a chance to finish the hard links. --- generator.c | 1 + io.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/generator.c b/generator.c index c10685ad..d82fa4aa 100644 --- a/generator.c +++ b/generator.c @@ -1873,6 +1873,7 @@ void check_for_finished_files(int itemizing, enum logcode code, int check_redo) file = flist->files[ndx - flist->ndx_start]; assert(file->flags & FLAG_HLINKED); finish_hard_link(file, f_name(file, fbuf), ndx, NULL, itemizing, code, -1); + flist->in_progress--; } #endif 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: -- 2.34.1