diff options
author | Neil Brown <neilb@suse.de> | 2007-02-05 08:57:36 +1100 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2007-02-05 08:57:36 +1100 |
commit | 2e0b281cbebd6624c2673f5e6822f85df698f273 (patch) | |
tree | 121da0d3e28a27f6e616525b54596ac754140845 /support/nfs/cacheio.c | |
parent | dbeba43bd33ce41bc3c5c95615176e59eb76f00c (diff) | |
download | nfs-utils-2e0b281cbebd6624c2673f5e6822f85df698f273.tar.gz nfs-utils-2e0b281cbebd6624c2673f5e6822f85df698f273.tar.xz nfs-utils-2e0b281cbebd6624c2673f5e6822f85df698f273.zip |
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'.
Diffstat (limited to 'support/nfs/cacheio.c')
-rw-r--r-- | support/nfs/cacheio.c | 5 |
1 files changed, 4 insertions, 1 deletions
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); |