mirror of
https://git.openafs.org/openafs.git
synced 2025-01-21 00:10:15 +00:00
windows-getcell-deadlock-20070911
don't hold the cm_scache_t mutex across calls to cm_GetCell() since cm_GetCell() can block in an RPC call. If that cm_scache_t must be accessed to revoke a callback, it can result in a deadlock.
This commit is contained in:
parent
c22f945bb7
commit
40090977d2
@ -1074,7 +1074,9 @@ long cm_FollowMountPoint(cm_scache_t *scp, cm_scache_t *dscp, cm_user_t *userp,
|
|||||||
strncpy(cellNamep, mpNamep+1, cp - mpNamep - 1);
|
strncpy(cellNamep, mpNamep+1, cp - mpNamep - 1);
|
||||||
strcpy(volNamep, cp+1);
|
strcpy(volNamep, cp+1);
|
||||||
/* now look up the cell */
|
/* now look up the cell */
|
||||||
|
lock_ReleaseMutex(&scp->mx);
|
||||||
cellp = cm_GetCell(cellNamep, CM_FLAG_CREATE);
|
cellp = cm_GetCell(cellNamep, CM_FLAG_CREATE);
|
||||||
|
lock_ObtainMutex(&scp->mx);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* normal mt pt */
|
/* normal mt pt */
|
||||||
|
Loading…
Reference in New Issue
Block a user