Junio C Hamano <gitster@xxxxxxxxx> writes: >> [1] https://public-inbox.org/git/CACsJy8AmbKSp0mDLRaDCWn45veeNc03B-Gq8r8PQPrDt9bM_EA@xxxxxxxxxxxxxx/ >> >> dir.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/dir.c b/dir.c >> index 7c4b45e30e..edcb7bb462 100644 >> --- a/dir.c >> +++ b/dir.c >> @@ -1809,7 +1809,7 @@ static int valid_cached_dir(struct dir_struct *dir, >> */ >> refresh_fsmonitor(istate); >> if (!(dir->untracked->use_fsmonitor && untracked->valid)) { >> - if (stat(path->len ? path->buf : ".", &st)) { >> + if (lstat(path->len ? path->buf : ".", &st)) { Hmph, I have to wonder if this is sufficient, though. When you got "a/b/c" in path->buf, is it sufficient to avoid mistaking 'c' that is (eh, rather, "has unexpectedly turned into") a symbolic link to a directory as a true directory? Wouldn't we have to be equally careful about "a" and "a/b" as well? >> invalidate_directory(dir->untracked, untracked); >> memset(&untracked->stat_data, 0, sizeof(untracked->stat_data)); >> return 0;