windows-misc-20080825
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 26 Aug 2008 05:36:34 +0000 (05:36 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 26 Aug 2008 05:36:34 +0000 (05:36 +0000)
LICENSE MIT

avoid a deadlock in cm_GiveUpAllCallbacks

log UAEEXIST / EEXIST in cm_Analyze

src/WINNT/afsd/cm_callback.c
src/WINNT/afsd/cm_conn.c

index 809845a..3d0941b 100644 (file)
@@ -1949,13 +1949,13 @@ cm_GiveUpAllCallbacks(cm_server_t *tsp, afs_int32 markDown)
             cm_volume_t * volp;
             int i;
 
+            cm_ForceNewConnections(tsp);
+
             lock_ObtainMutex(&tsp->mx);
             if (!(tsp->flags & CM_SERVERFLAG_DOWN)) {
                 tsp->flags |= CM_SERVERFLAG_DOWN;
                 tsp->downTime = time(NULL);
             }
-            cm_ForceNewConnections(tsp);
-
             /* Now update the volume status */
             for (tsrvp = tsp->vols; tsrvp; tsrvp = tsrvp->nextp) {
                 for (i=0; i<NUM_SERVER_VOLS; i++) {
index 08411cc..aa5d3fc 100644 (file)
@@ -658,6 +658,8 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
            case UAEACCES          : s = "UAEACCES";           break;
            case ENOENT            : s = "ENOENT";             break;
            case UAENOENT          : s = "UAENOENT";           break;
+            case EEXIST            : s = "EEXIST";             break;
+            case UAEEXIST          : s = "UAEEXIST";           break;
            case VICECONNBAD       : s = "VICECONNBAD";        break;
            case VICETOKENDEAD     : s = "VICETOKENDEAD";      break;
             case WSAEWOULDBLOCK    : s = "WSAEWOULDBLOCK";     break;