untracked cache: avoid racy timestamps
[gitweb.git] / dir.c
diff --git a/dir.c b/dir.c
index 68b46d0acb53f85398171a97b664d7ccfcfe4bbd..741484aa975348e71cb908a1ed775b53ace90512 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -682,7 +682,7 @@ static int add_excludes(const char *fname, const char *base, int baselen,
                if (sha1_stat) {
                        int pos;
                        if (sha1_stat->valid &&
-                           !match_stat_data(&sha1_stat->stat, &st))
+                           !match_stat_data_racy(&the_index, &sha1_stat->stat, &st))
                                ; /* no content change, ss->sha1 still good */
                        else if (check_index &&
                                 (pos = cache_name_pos(fname, strlen(fname))) >= 0 &&
@@ -1539,7 +1539,7 @@ static int valid_cached_dir(struct dir_struct *dir,
                return 0;
        }
        if (!untracked->valid ||
-           match_stat_data(&untracked->stat_data, &st)) {
+           match_stat_data_racy(&the_index, &untracked->stat_data, &st)) {
                if (untracked->valid)
                        invalidate_directory(dir->untracked, untracked);
                fill_stat_data(&untracked->stat_data, &st);