From 83e21e0398d4aa4028fb14586a7726da9088b65f Mon Sep 17 00:00:00 2001 From: neilbrown Date: Tue, 8 Jun 2004 03:16:36 +0000 Subject: [PATCH] Fix cache flushing problem. --- ChangeLog | 8 ++++++++ support/nfs/cacheio.c | 8 +++++++- utils/exportfs/exportfs.c | 3 ++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 98893a1..f7ec2da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-06-08 NeilBrown + + * utils/exportfs/exportfs.c: Don't rmtab_read if new_cache, it + isn't necessary. + * support/nfs/cacheio.c(cache_flush): Change order in which caches + are flushed so that dependancies don't keep things in the cache + too long. + 2004-03-18 Chip Salzenberg * debian/changelog: Version 1.0.6-2. diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c index 20d195c..33231b0 100644 --- a/support/nfs/cacheio.c +++ b/support/nfs/cacheio.c @@ -246,10 +246,16 @@ cache_flush(int force) int c; char stime[20]; char path[200]; + /* 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, + * as nfsd.fh entries reference items in nfsd.export, + * must be flushed before the cache that it references. + */ static char *cachelist[] = { "auth.unix.ip", - "nfsd.export", "nfsd.fh", + "nfsd.export", NULL }; stb.st_mtime = time(0); diff --git a/utils/exportfs/exportfs.c b/utils/exportfs/exportfs.c index 290d8b2..b4f0226 100644 --- a/utils/exportfs/exportfs.c +++ b/utils/exportfs/exportfs.c @@ -130,7 +130,8 @@ main(int argc, char **argv) if (!f_export) for (i = optind ; i < argc ; i++) unexportfs(argv[i], f_verbose); - rmtab_read(); + if (!new_cache) + rmtab_read(); } if (!new_cache) { xtab_mount_read(); -- 2.39.2