From: Jeffrey Altman Date: Tue, 25 Dec 2007 22:01:44 +0000 (+0000) Subject: DEVEL15-windows-callback-revoke-multi-cell-servers-20071225 X-Git-Tag: openafs-devel-1_5_29~15 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=bf65f02e625df0aa9344b05abc4de5c3c55f855d;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-callback-revoke-multi-cell-servers-20071225 LICENSE MIT Remove the callback revoke optimization that prevents a (vol,vn,uniq) tupple from invalidating entries from multiple cells. We cannot reliably determine the cell from the server because the server might be identified as belonging to more than one cell. For example, openafs.org and grand.central.org. (cherry picked from commit 69d62d59689c7cd9758177f1f23d3b60df3a8a40) --- diff --git a/src/WINNT/afsd/cm_callback.c b/src/WINNT/afsd/cm_callback.c index e738d1b5b..24bc222e0 100644 --- a/src/WINNT/afsd/cm_callback.c +++ b/src/WINNT/afsd/cm_callback.c @@ -359,7 +359,6 @@ SRXAFSCB_CallBack(struct rx_call *callp, AFSCBFids *fidsArrayp, AFSCBs *cbsArray unsigned long host = 0; unsigned short port = 0; cm_server_t *tsp = NULL; - cm_cell_t * cellp = NULL; MUTEX_ENTER(&callp->lock); @@ -367,14 +366,13 @@ SRXAFSCB_CallBack(struct rx_call *callp, AFSCBFids *fidsArrayp, AFSCBs *cbsArray host = rx_HostOf(peerp); port = rx_PortOf(peerp); - tsp = cm_FindServerByIP(host, CM_SERVER_FILE); - if (tsp) - cellp = tsp->cellp; + osi_Log2(afsd_logp, "SRXAFSCB_CallBack from host 0x%x port %d", + ntohl(host), + ntohs(port)); + } else { + osi_Log0(afsd_logp, "SRXAFSCB_CallBack from unknown host"); } - osi_Log2(afsd_logp, "SRXAFSCB_CallBack from host 0x%x port %d", - ntohl(host), - ntohs(port)); for (i=0; i < (long) fidsArrayp->AFSCBFids_len; i++) { tfidp = &fidsArrayp->AFSCBFids_val[i]; @@ -382,9 +380,9 @@ SRXAFSCB_CallBack(struct rx_call *callp, AFSCBFids *fidsArrayp, AFSCBs *cbsArray if (tfidp->Volume == 0) continue; /* means don't do anything */ else if (tfidp->Vnode == 0) - cm_RevokeVolumeCallback(callp, cellp, tfidp); + cm_RevokeVolumeCallback(callp, NULL, tfidp); else - cm_RevokeCallback(callp, cellp, tfidp); + cm_RevokeCallback(callp, NULL, tfidp); } MUTEX_EXIT(&callp->lock);