auth: fix cellservdb update check
authorMichael Meffie <mmeffie@sinenomine.net>
Sat, 7 Sep 2013 03:58:39 +0000 (23:58 -0400)
committerDerrick Brashear <shadow@your-file-system.com>
Thu, 12 Sep 2013 15:27:43 +0000 (08:27 -0700)
Fix a bug introduced by the check to avoid excessive stats of the
cellservdb.  Fixes a bug where cached cell config data is served for up
to one second after a write.

Check the timeRead field which is reset after a write to indicate the
data should be read.

Fixes commit 0e3bfa033ed230fcb46ad8e3c26c8b7aae6e00af

Change-Id: I209e93a1bc4107a878eefaae92ec0e5e4ada2518
Reviewed-on: http://gerrit.openafs.org/10230
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>

src/auth/cellconfig.c

index cffac98..14c03b4 100644 (file)
@@ -353,7 +353,7 @@ _afsconf_UpToDate(struct afsconf_dir *adir)
     int code;
     time_t now = time(0);
 
-    if (adir->timeCheck == now) {
+    if (adir->timeRead && (adir->timeCheck == now)) {
        return 1; /* stat no more than once a second */
     }
     adir->timeCheck = now;