Copyright 2000, International Business Machines Corporation and others. All Rights Reserved. This software has been released under the terms of the IBM Public License. For details, see the LICENSE file in the top-level source directory or online at http://www.openafs.org/dl/license10.html The locking/waiting hierarchy here is this: - lock scp's bufCreateLock - resv multiple simul. buffers reservation - lock buffer I/O flags - lock buffer's mutex - smb_fid_t mutex - scache flags (storing, fetching, etc); if set for more than one vnode in a volume, must be set in vnode order (see cm_Rename). - scache mutex - lock tran_globalLock - lock buf_globalLock - userp->mx - lock cm_scacheLock - volp->mx - cm_connLock (locked before cm_userLock in cm_GCConnections) - cm_cellLock - cm_serverLock (locked after cm_cellLock in cm_IoctlGetCell) - other global locks - cm_aclLock (locked before cm_userLock throughout cm_aclent.c) - cm_userLock