Commit 2bb4cda1 authored by Duy Nguyen's avatar Duy Nguyen Committed by Junio C Hamano

read-cache.c: split racy stat test to a separate function

Signed-off-by: Duy Nguyen's avatarNguyễn Thái Ngọc Duy <[email protected]>
Signed-off-by: default avatarJunio C Hamano <[email protected]>
parent e931371a
......@@ -272,20 +272,26 @@ static int ce_match_stat_basic(const struct cache_entry *ce, struct stat *st)
return changed;
}
static int is_racy_timestamp(const struct index_state *istate,
const struct cache_entry *ce)
static int is_racy_stat(const struct index_state *istate,
const struct stat_data *sd)
{
return (!S_ISGITLINK(ce->ce_mode) &&
istate->timestamp.sec &&
return (istate->timestamp.sec &&
#ifdef USE_NSEC
/* nanosecond timestamped files can also be racy! */
(istate->timestamp.sec < ce->ce_stat_data.sd_mtime.sec ||
(istate->timestamp.sec == ce->ce_stat_data.sd_mtime.sec &&
istate->timestamp.nsec <= ce->ce_stat_data.sd_mtime.nsec))
(istate->timestamp.sec < sd->sd_mtime.sec ||
(istate->timestamp.sec == sd->sd_mtime.sec &&
istate->timestamp.nsec <= sd->sd_mtime.nsec))
#else
istate->timestamp.sec <= ce->ce_stat_data.sd_mtime.sec
istate->timestamp.sec <= sd->sd_mtime.sec
#endif
);
);
}
static int is_racy_timestamp(const struct index_state *istate,
const struct cache_entry *ce)
{
return (!S_ISGITLINK(ce->ce_mode) &&
is_racy_stat(istate, &ce->ce_stat_data));
}
int ie_match_stat(const struct index_state *istate,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment