Windows: add cm_ServerListSize()

cm_ServerListSize returns the length of a cm_serverRef_t list.

Change-Id: I6dc1e5e2c23efffe9d6c210ba1c8702d00aabe8f
Reviewed-on: http://gerrit.openafs.org/7759
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
This commit is contained in:
Jeffrey Altman 2012-07-06 16:04:28 -04:00
parent 2dbe1316a1
commit 6b8c435590
2 changed files with 16 additions and 0 deletions

View File

@ -1081,7 +1081,21 @@ afs_int32 cm_PutServerRef(cm_serverRef_t *tsrp, int locked)
return refCount;
}
afs_uint32
cm_ServerListSize(cm_serverRef_t* serversp)
{
afs_uint32 count = 0;
cm_serverRef_t *tsrp;
lock_ObtainRead(&cm_serverLock);
for (tsrp = serversp; tsrp; tsrp=tsrp->next) {
if (tsrp->status == srv_deleted)
continue;
count++;
}
lock_ReleaseRead(&cm_serverLock);
return count;
}
LONG_PTR cm_ChecksumServerList(cm_serverRef_t *serversp)
{

View File

@ -131,6 +131,8 @@ extern void cm_RandomizeServer(cm_serverRef_t** list);
extern void cm_FreeServer(cm_server_t* server);
extern afs_uint32 cm_ServerListSize(cm_serverRef_t* list);
#define CM_FREESERVERLIST_DELETE 1
extern void cm_FreeServerList(cm_serverRef_t** list, afs_uint32 flags);