libafs: Correct afs_LoopServers flags
authorAndrew Deason <adeason@sinenomine.net>
Thu, 5 May 2011 16:37:12 +0000 (11:37 -0500)
committerDerrick Brashear <shadow@dementia.org>
Thu, 5 May 2011 18:02:25 +0000 (11:02 -0700)
AFS_LS_DOWN was actually checking up servers, and AFS_LS_UP was
checking down servers. Fix the handling of the 'adown' flag so we do
the right thing. Also make afs_FlushVCBs use the symbolic name for
adown.

Change-Id: I601faf1bb712a2f76f0bb2447530af38111a71fd
Reviewed-on: http://gerrit.openafs.org/4624
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/afs/afs_call.c
src/afs/afs_server.c
src/afs/afs_vcache.c

index 0ed56ef..f82d4cd 100644 (file)
@@ -1164,7 +1164,7 @@ afs_syscall_call(long parm, long parm2, long parm3,
 
        if (refresh) {
            afs_CheckServers(1, NULL);     /* check down servers */
-           afs_CheckServers(0, NULL);     /* check down servers */
+           afs_CheckServers(0, NULL);     /* check up servers */
        }
     }
 #ifdef AFS_SGI53_ENV
index 0b6553b..1c5d7f7 100644 (file)
@@ -748,7 +748,9 @@ afs_CheckServers(int adown, struct cell *acellp)
                    afs_setTime?CkSrv_SetTime:NULL);
 }
 
-/* adown: 0 - check only down. 1 - check only up. 2 - check all */
+/* adown: AFS_LS_UP   - check only up
+ *        AFS_LS_DOWN - check only down.
+ *        AFS_LS_ALL  - check all */
 void
 afs_LoopServers(int adown, struct cell *acellp, int vlalso,
                void (*func1) (struct rx_connection **rxconns, int nconns,
@@ -833,8 +835,8 @@ afs_LoopServers(int adown, struct cell *acellp, int vlalso,
        if (acellp && acellp != ts->cell)
            continue;
 
-       if (((adown==AFS_LS_DOWN) && (sa->sa_flags & SRVADDR_ISDOWN))
-           || ((adown==AFS_LS_UP) && !(sa->sa_flags & SRVADDR_ISDOWN)))
+       if (((adown==AFS_LS_DOWN) && !(sa->sa_flags & SRVADDR_ISDOWN))
+           || ((adown==AFS_LS_UP) && (sa->sa_flags & SRVADDR_ISDOWN)))
            continue;
 
        /* check vlserver with special code */
index 45118d7..d9f623f 100644 (file)
@@ -425,7 +425,7 @@ afs_FlushVCBs(afs_int32 lockit)
      */
 
     if (lockit == 2)
-       afs_LoopServers(2, NULL, 0, FlushAllVCBs, NULL);
+       afs_LoopServers(AFS_LS_ALL, NULL, 0, FlushAllVCBs, NULL);
 
     ObtainReadLock(&afs_xserver);
     for (i = 0; i < NSERVERS; i++) {