From 1f48bc7a30d5df88a1e5f539ee22df3952533a88 Mon Sep 17 00:00:00 2001 From: Andrew Deason Date: Thu, 5 May 2011 11:37:12 -0500 Subject: [PATCH] libafs: Correct afs_LoopServers flags 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 Tested-by: BuildBot --- src/afs/afs_call.c | 2 +- src/afs/afs_server.c | 8 +++++--- src/afs/afs_vcache.c | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/afs/afs_call.c b/src/afs/afs_call.c index 0ed56ef27..f82d4cd54 100644 --- a/src/afs/afs_call.c +++ b/src/afs/afs_call.c @@ -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 diff --git a/src/afs/afs_server.c b/src/afs/afs_server.c index 0b6553bfa..1c5d7f789 100644 --- a/src/afs/afs_server.c +++ b/src/afs/afs_server.c @@ -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 */ diff --git a/src/afs/afs_vcache.c b/src/afs/afs_vcache.c index 45118d73f..d9f623f18 100644 --- a/src/afs/afs_vcache.c +++ b/src/afs/afs_vcache.c @@ -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++) { -- 2.39.5