]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-readonly-volume-callbacks-20071110
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 10 Nov 2007 22:55:19 +0000 (22:55 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 10 Nov 2007 22:55:19 +0000 (22:55 +0000)
avoid a deadlock

(cherry picked from commit b5935d47fb5b06c4f1c74c3671af4b1a481b8ab3)

src/WINNT/afsd/cm_volume.c

index a4a2b6f3e25497aca50ab0289ddb042a310e1e69..84155040def68acbf039c47007d5080e745ae63f 100644 (file)
@@ -1521,17 +1521,15 @@ cm_VolumeRenewROCallbacks(void)
 
             cm_InitReq(&req);
 
+            lock_ReleaseRead(&cm_volumeLock);
             if (cm_GetSCache(&fid, &scp, cm_rootUserp, &req) == 0) {
-                lock_ReleaseRead(&cm_volumeLock);
                 lock_ObtainMutex(&scp->mx);
                 cm_GetCallback(scp, cm_rootUserp, &req, 1);
                 lock_ReleaseMutex(&scp->mx);
                 cm_ReleaseSCache(scp);
-                lock_ObtainRead(&cm_volumeLock);
             }
+            lock_ObtainRead(&cm_volumeLock);
         }
     }
     lock_ReleaseRead(&cm_volumeLock);
 }
-
-