]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/cacheio.c
Support group-id looks for kernels that ask for them.
[nfs-utils.git] / support / nfs / cacheio.c
index 3e868d8843e9c9153be7ee595eec4517ec5cd5b4..a76915bcf22992129efe3c1df9a25f83d44bfd70 100644 (file)
@@ -109,10 +109,10 @@ void qword_printint(FILE *f, int num)
        fprintf(f, "%d ", num);
 }
 
-void qword_eol(FILE *f)
+int qword_eol(FILE *f)
 {
        fprintf(f,"\n");
-       fflush(f);
+       return fflush(f);
 }
 
 
@@ -247,20 +247,24 @@ 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
+        * They 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",
+               "auth.unix.gid",
                "nfsd.fh",
                "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);