]> git.decadent.org.uk Git - nfs-utils.git/commitdiff
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 98893a178254d271f65511755d5bfb09aa3d70ef..f7ec2da1e5aff83b5e07ad070bab3d4490dafe5e 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 20d195c16ca4b792fbb7b7866688e7993ab87db8..33231b01e1daae34cbff3933224b307978b7be37 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 290d8b25454b7317c3c323bb1f02b9964934bdb8..b4f0226042b22048725945755f0c04d99ef11757 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();