From: Junio C Hamano Date: Wed, 27 Dec 2023 22:52:24 +0000 (-0800) Subject: Merge branch 'jc/fake-lstat' X-Git-Tag: v2.44.0-rc0~118 X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fgit.git;a=commitdiff_plain;h=01f86ebb95cc6613db3e637aaba1599e6435c6b7 Merge branch 'jc/fake-lstat' A new helper to let us pretend that we called lstat() when we know our cache_entry is up-to-date via fsmonitor. * jc/fake-lstat: cache: add fake_lstat() --- 01f86ebb95cc6613db3e637aaba1599e6435c6b7 diff --cc statinfo.c index 9367ca099c,45156109de..3c6bc049c1 --- a/statinfo.c +++ b/statinfo.c @@@ -28,9 -12,36 +28,36 @@@ void fill_stat_data(struct stat_data *s sd->sd_ino = st->st_ino; sd->sd_uid = st->st_uid; sd->sd_gid = st->st_gid; - sd->sd_size = st->st_size; + sd->sd_size = munge_st_size(st->st_size); } + static void set_times(struct stat *st, const struct stat_data *sd) + { + st->st_ctime = sd->sd_ctime.sec; + st->st_mtime = sd->sd_mtime.sec; + #ifdef NO_NSEC + ; /* nothing */ + #else + #ifdef USE_ST_TIMESPEC + st->st_ctimespec.tv_nsec = sd->sd_ctime.nsec; + st->st_mtimespec.tv_nsec = sd->sd_mtime.nsec; + #else + st->st_ctim.tv_nsec = sd->sd_ctime.nsec; + st->st_mtim.tv_nsec = sd->sd_mtime.nsec; + #endif + #endif + } + + void fake_lstat_data(const struct stat_data *sd, struct stat *st) + { + set_times(st, sd); + st->st_dev = sd->sd_dev; + st->st_ino = sd->sd_ino; + st->st_uid = sd->sd_uid; + st->st_gid = sd->sd_gid; + st->st_size = sd->sd_size; + } + int match_stat_data(const struct stat_data *sd, struct stat *st) { int changed = 0;