summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
f2179fd)
- Improve the chances of the generator finding a match for a
hard-link file in inc_recurse mode.
do {
#ifdef SUPPORT_HARD_LINKS
do {
#ifdef SUPPORT_HARD_LINKS
- if (inc_recurse && preserve_hard_links)
- match_hard_links(cur_flist);
+ if (preserve_hard_links && inc_recurse) {
+ while (!flist_eof && file_total < FILECNT_LOOKAHEAD/2)
+ wait_for_receiver();
+ }
if (inc_recurse && cur_flist->ndx_start) {
struct file_struct *fp = dir_flist->files[cur_flist->parent_ndx];
f_name(fp, fbuf);
if (inc_recurse && cur_flist->ndx_start) {
struct file_struct *fp = dir_flist->files[cur_flist->parent_ndx];
f_name(fp, fbuf);
}
flist = recv_file_list(fd);
flist->parent_ndx = IVAL(buf,0);
}
flist = recv_file_list(fd);
flist->parent_ndx = IVAL(buf,0);
+#ifdef SUPPORT_HARD_LINKS
+ if (preserve_hard_links)
+ match_hard_links(flist);
+#endif
break;
case MSG_FLIST_EOF:
if (len != 0 || !am_generator || !inc_recurse)
break;
case MSG_FLIST_EOF:
if (len != 0 || !am_generator || !inc_recurse)
extern char *batch_name;
extern char *password_file;
extern char curr_dir[MAXPATHLEN];
extern char *batch_name;
extern char *password_file;
extern char curr_dir[MAXPATHLEN];
-extern struct file_list *cur_flist;
+extern struct file_list *first_flist;
extern struct filter_list_struct server_filter_list;
int local_server = 0;
extern struct filter_list_struct server_filter_list;
int local_server = 0;
#ifdef SUPPORT_HARD_LINKS
if (preserve_hard_links && !inc_recurse)
#ifdef SUPPORT_HARD_LINKS
if (preserve_hard_links && !inc_recurse)
- match_hard_links(cur_flist);
+ match_hard_links(first_flist);
#endif
if (fd_pair(error_pipe) < 0) {
#endif
if (fd_pair(error_pipe) < 0) {
set_msg_fd_in(error_pipe[0]);
io_start_buffering_in(error_pipe[0]);
set_msg_fd_in(error_pipe[0]);
io_start_buffering_in(error_pipe[0]);
+#ifdef SUPPORT_HARD_LINKS
+ if (preserve_hard_links && inc_recurse) {
+ struct file_list *flist;
+ for (flist = first_flist; flist; flist = flist->next)
+ match_hard_links(flist);
+ }
+#endif
+
generate_files(f_out, local_name);
handle_stats(-1);
generate_files(f_out, local_name);
handle_stats(-1);