]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/cacheio.c
Never set flushtime for a cache in the future.
[nfs-utils.git] / support / nfs / cacheio.c
index d7ad4293762f4b6dd583fec668cb0ea9df47b733..a4bfedbbc02eb1e3522dea1172be1973ff54b3de 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,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,9 +260,11 @@ cache_flush(int force)
                "nfsd.export",
                NULL
        };
-       stb.st_mtime = time(0);
-       if (!force)
-               stat(_PATH_ETAB, &stb);
+       now = time(0);
+       if (force ||
+           stat(_PATH_ETAB, &stb) != 0 ||
+           stb.st_mtime > now)
+               stb.st_mtime = time(0);
        
        sprintf(stime, "%ld\n", stb.st_mtime);
        for (c=0; cachelist[c]; c++) {