From: Jeffrey Altman Date: Tue, 19 Jun 2007 19:29:41 +0000 (+0000) Subject: windows-all-cell-list-20070619 X-Git-Tag: BP-openafs-windows-kdfs-ifs~653 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=adb83635bbb0c2ed7f549a78e2d9a56baa16b273;p=packages%2Fo%2Fopenafs.git windows-all-cell-list-20070619 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. --- diff --git a/src/WINNT/afsd/cm_cell.c b/src/WINNT/afsd/cm_cell.c index 3197a7447..85d6dfb20 100644 --- a/src/WINNT/afsd/cm_cell.c +++ b/src/WINNT/afsd/cm_cell.c @@ -225,9 +225,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;