From: Timo Sirainen Date: Mon, 10 Feb 2020 16:16:14 +0000 (+0200) Subject: lib-index: Add mail_cache.last_stat_size X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fhistorical%2Fmaster-2.2;p=thirdparty%2Fdovecot%2Fcore.git lib-index: Add mail_cache.last_stat_size --- diff --git a/src/lib-index/mail-cache-private.h b/src/lib-index/mail-cache-private.h index cb1c6efc30..b75b9af70a 100644 --- a/src/lib-index/mail-cache-private.h +++ b/src/lib-index/mail-cache-private.h @@ -96,6 +96,7 @@ struct mail_cache { time_t last_mmap_error_time; + uoff_t last_stat_size; size_t mmap_length; /* a) mmaping the whole file */ void *mmap_base; diff --git a/src/lib-index/mail-cache.c b/src/lib-index/mail-cache.c index 0a861e47cf..c7ce3abff8 100644 --- a/src/lib-index/mail-cache.c +++ b/src/lib-index/mail-cache.c @@ -117,6 +117,7 @@ static void mail_cache_init_file_cache(struct mail_cache *cache) mail_cache_set_syscall_error(cache, "fstat()"); } + cache->last_stat_size = st.st_size; cache->st_ino = st.st_ino; cache->st_dev = st.st_dev; } @@ -438,6 +439,7 @@ int mail_cache_map(struct mail_cache *cache, size_t offset, size_t size, i_error("fstat(%s) failed: %m", cache->filepath); return -1; } + cache->last_stat_size = st.st_size; if (offset >= (uoff_t)st.st_size) { *data_r = NULL; return 0; @@ -799,6 +801,7 @@ int mail_cache_append(struct mail_cache *cache, const void *data, size_t size, mail_cache_set_syscall_error(cache, "fstat()"); return -1; } + cache->last_stat_size = st.st_size; if ((uoff_t)st.st_size > cache->index->optimization_set.cache.max_size) { mail_cache_set_corrupted(cache, "Cache file too large"); return -1;