windows-multi-fix-20061003
[openafs.git] / src / WINNT / afsd / cm_callback.c
index 5ead137..36fbbb9 100644 (file)
@@ -1622,7 +1622,6 @@ long cm_GetCallback(cm_scache_t *scp, struct cm_user *userp,
     AFSFid tfid;
     cm_callbackRequest_t cbr;
     int mustCall;
-    long sflags;
     cm_fid_t sfid;
     struct rx_connection * callp = NULL;
 
@@ -1680,16 +1679,14 @@ long cm_GetCallback(cm_scache_t *scp, struct cm_user *userp,
         /* turn off mustCall, since it has now forced us past the check above */
         mustCall = 0;
 
-#if 0
        /* 20060929 jaltman - We are being called from within cm_SyncOp.
         * if we call cm_SyncOp again and another thread has attempted
         * to obtain current status CM_SCACHEFLAG_WAITING will be set
         * and we will deadlock.  
         */
         /* otherwise, we have to make an RPC to get the status */
-        sflags = CM_SCACHESYNC_FETCHSTATUS | CM_SCACHESYNC_GETCALLBACK;
-        cm_SyncOp(scp, NULL, userp, reqp, 0, sflags);
-#endif /* deadlock */
+        cm_SyncOp(scp, NULL, userp, reqp, 0, 
+                 CM_SCACHESYNC_FETCHSTATUS | CM_SCACHESYNC_GETCALLBACK);
         cm_StartCallbackGrantingCall(scp, &cbr);
         sfid = scp->fid;
         lock_ReleaseMutex(&scp->mx);
@@ -1724,10 +1721,8 @@ long cm_GetCallback(cm_scache_t *scp, struct cm_user *userp,
         } else {
             cm_EndCallbackGrantingCall(NULL, &cbr, NULL, 0);
         }
-#if 0
        /* 20060929 jaltman - don't deadlock */
-        cm_SyncOpDone(scp, NULL, sflags);
-#endif
+        cm_SyncOpDone(scp, NULL, CM_SCACHESYNC_FETCHSTATUS | CM_SCACHESYNC_GETCALLBACK);
 
         /* now check to see if we got an error */
         if (code) {