]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: add cm_ServerListSize()
authorJeffrey Altman <jaltman@your-file-system.com>
Fri, 6 Jul 2012 20:04:28 +0000 (16:04 -0400)
committerJeffrey Altman <jaltman@your-file-system.com>
Fri, 13 Jul 2012 03:36:12 +0000 (20:36 -0700)
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>
src/WINNT/afsd/cm_server.c
src/WINNT/afsd/cm_server.h

index aceb08d4232b1c3e08903827a777292f559149f0..e3e366c09a948ff06000a6709787b9e82e3b67e1 100644 (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)
 {
index aa568b2758dc250c92f4497845a701691f99e82f..8d13aef5c7cbe5b7030da1336f77081711cde2c7 100644 (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);