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

src/WINNT/afsd/cm_volume.c

index 3ee4812ee4d786c03e1db89b8b3119a90a892551..e2d9d62ba744b0f221aa36bd393c6a0fc82eff7b 100644 (file)
@@ -1517,17 +1517,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);
 }
-
-