X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=support%2Fnfs%2Fcacheio.c;h=a4bfedbbc02eb1e3522dea1172be1973ff54b3de;hb=2e0b281cbebd6624c2673f5e6822f85df698f273;hp=d7ad4293762f4b6dd583fec668cb0ea9df47b733;hpb=7d6fa6e153b26e0e9ad2dfdff3ce2168c46dd16b;p=nfs-utils.git diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c index d7ad429..a4bfedb 100644 --- a/support/nfs/cacheio.c +++ b/support/nfs/cacheio.c @@ -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++) {