]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-callback-revoke-multi-cell-servers-20071225
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 25 Dec 2007 22:01:44 +0000 (22:01 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 25 Dec 2007 22:01:44 +0000 (22:01 +0000)
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)

src/WINNT/afsd/cm_callback.c

index e738d1b5b8642370a6d3fccc0f6d59870182ab5e..24bc222e0d8982c8d11b6124a6f6b6f1a955ac2d 100644 (file)
@@ -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);