DEVEL15-windows-cellservdb-rank-20090615

LICENSE MIT

When inserting a new vldb server, if the rank is 0 (unknown), do not
override the default rank assigned by cm_NewServer().  Doing so erases
the randomized ranking.


(cherry picked from commit 81c9b8c0c4)
This commit is contained in:
Jeffrey Altman 2009-06-19 04:14:39 +00:00
parent 1367a1560e
commit a2cc53224c

View File

@ -54,7 +54,8 @@ long cm_AddCellProc(void *rockp, struct sockaddr_in *addrp, char *hostnamep, uns
else
tsp = cm_NewServer(addrp, CM_SERVER_VLDB, cellp, NULL, probe ? 0 : CM_FLAG_NOPROBE);
tsp->ipRank = ipRank;
if (ipRank)
tsp->ipRank = ipRank;
/* Insert the vlserver into a sorted list, sorted by server rank */
tsrp = cm_NewServerRef(tsp, 0);
@ -138,6 +139,10 @@ cm_cell_t *cm_UpdateCell(cm_cell_t * cp, afs_uint32 flags)
} else {
lock_ReleaseMutex(&cp->mx);
}
if (code == 0)
cm_RandomizeServer(&cp->vlServersp);
return code ? NULL : cp;
}