Fix cache flushing problem. nfs-utils-1-0-6-post2
authorneilbrown <neilbrown>
Tue, 8 Jun 2004 03:16:36 +0000 (03:16 +0000)
committerneilbrown <neilbrown>
Tue, 8 Jun 2004 03:16:36 +0000 (03:16 +0000)
ChangeLog
support/nfs/cacheio.c
utils/exportfs/exportfs.c

index 98893a1..f7ec2da 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2004-06-08 NeilBrown <neilb@cse.unsw.edu.au>
+
+       * 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  <chip@pobox.com>
 
        * debian/changelog: Version 1.0.6-2.
index 20d195c..33231b0 100644 (file)
@@ -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);
index 290d8b2..b4f0226 100644 (file)
@@ -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();