From: Neil Brown Date: Sun, 4 Feb 2007 21:57:36 +0000 (+1100) Subject: Never set flushtime for a cache in the future. X-Git-Tag: nfs-utils-1-0-11~30 X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=2e0b281cbebd6624c2673f5e6822f85df698f273;p=nfs-utils.git Never set flushtime for a cache in the future. If 'etab' happens to have a timestamp in the future, this will get copied to the flush-time for various caches, and no exports will work until that time arrives. So clamp the flushtime to 'now'. --- diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c index 36473cf..a4bfedb 100644 --- a/support/nfs/cacheio.c +++ b/support/nfs/cacheio.c @@ -247,6 +247,7 @@ cache_flush(int force) int c; char stime[20]; char path[200]; + time_t now; /* Note: the order of these caches is important. * The need to be flushed in dependancy order. So * a cache that references items in another cache, @@ -259,8 +260,10 @@ cache_flush(int force) "nfsd.export", NULL }; + now = time(0); if (force || - stat(_PATH_ETAB, &stb) != 0) + stat(_PATH_ETAB, &stb) != 0 || + stb.st_mtime > now) stb.st_mtime = time(0); sprintf(stime, "%ld\n", stb.st_mtime);