static int missing_below = -1, excluded_below = -1;
static char *parent_dirname = "";
static struct file_list *fuzzy_dirlist = NULL;
+ static int need_fuzzy_dirlist = 0;
struct file_struct *fuzzy_file = NULL;
int fd = -1, f_copy = -1;
STRUCT_STAT st, real_st, partial_st;
fuzzy_dirlist = NULL;
}
if (fuzzy_basis)
- fuzzy_dirlist = get_dirlist(dn, -1, 1);
+ need_fuzzy_dirlist = 1;
}
parent_dirname = dn;
+ if (need_fuzzy_dirlist && S_ISREG(file->mode))
+ fuzzy_dirlist = get_dirlist(dn, -1, 1);
+
statret = link_stat(fname, &st,
keep_dirlinks && S_ISDIR(file->mode));
stat_errno = errno;