]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-all-cell-list-20070619
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 19 Jun 2007 19:31:10 +0000 (19:31 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 19 Jun 2007 19:31:10 +0000 (19:31 +0000)
Reverse the order of the allCellsp list.  Append new cells onto the end
of the list.  This ensures that the workstation cell will always be the
first in the list.  Adding additional cells will not degrade the performance
to the workstation cell.

(cherry picked from commit adb83635bbb0c2ed7f549a78e2d9a56baa16b273)

src/WINNT/afsd/cm_cell.c

index 025036aeac7fa4ead3a6e94f7e7d412a51b2ece0..f9782510048e3b457f1b84f814f02f6814b5f58f 100644 (file)
@@ -227,9 +227,15 @@ cm_cell_t *cm_GetCell_Gen(char *namep, char *newnamep, afs_uint32 flags)
         strncpy(cp->name, fullname, CELL_MAXNAMELEN);
         cp->name[CELL_MAXNAMELEN-1] = '\0';
 
-        /* thread on global list */
-        cp->nextp = cm_data.allCellsp;
-        cm_data.allCellsp = cp;
+        /* append cell to global list */
+        if (cm_data.allCellsp == NULL) {
+            cm_data.allCellsp = cp;
+        } else {
+            for (cp2 = cm_data.allCellsp; cp2->nextp; cp2=cp2->nextp)
+                ;
+            cp2->nextp = cp;
+        }
+        cp->nextp = NULL;
            
         /* the cellID cannot be 0 */
         cp->cellID = ++cm_data.currentCells;