From: Jeffrey Altman Date: Sat, 23 Feb 2008 21:12:54 +0000 (+0000) Subject: windows-buf-createlock-20080223 X-Git-Tag: BP-openafs-windows-kdfs-ifs~83 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=8bddb4892bb815076861507f8ae781ae2c3f3310;p=packages%2Fo%2Fopenafs.git windows-buf-createlock-20080223 LICENSE MIT Do not leak a read lock on the bufCreateLock Add logging to cm_CheckNTOpen[Done] --- diff --git a/src/WINNT/afsd/cm_buf.c b/src/WINNT/afsd/cm_buf.c index ccc50986b..a067b8be0 100644 --- a/src/WINNT/afsd/cm_buf.c +++ b/src/WINNT/afsd/cm_buf.c @@ -776,6 +776,7 @@ long buf_GetNewLocked(struct cm_scache *scp, osi_hyper_t *offsetp, cm_buf_t **bu */ bp->refCount--; lock_ReleaseWrite(&buf_globalLock); + lock_ReleaseRead(&scp->bufCreateLock); return CM_BUF_EXISTS; } } @@ -841,6 +842,7 @@ long buf_GetNewLocked(struct cm_scache *scp, osi_hyper_t *offsetp, cm_buf_t **bu */ buf_HoldLocked(bp); lock_ReleaseWrite(&buf_globalLock); + lock_ReleaseRead(&scp->bufCreateLock); /* grab required lock and clean; this only * starts the I/O. By the time we're back, diff --git a/src/WINNT/afsd/cm_vnodeops.c b/src/WINNT/afsd/cm_vnodeops.c index 6ed535489..a0ec10343 100644 --- a/src/WINNT/afsd/cm_vnodeops.c +++ b/src/WINNT/afsd/cm_vnodeops.c @@ -439,12 +439,14 @@ long cm_CheckNTOpen(cm_scache_t *scp, unsigned int desiredAccess, _done: lock_ReleaseMutex(&scp->mx); + osi_Log3(afsd_logp,"cm_CheckNTOpen scp 0x%p ldp 0x%p code 0x%x", scp, *ldpp, code); return code; } extern long cm_CheckNTOpenDone(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp, cm_lock_data_t ** ldpp) { + osi_Log2(afsd_logp,"cm_CheckNTOpenDone scp 0x%p ldp 0x%p", scp, *ldpp); if (*ldpp) { lock_ObtainMutex(&scp->mx); cm_Unlock(scp, (*ldpp)->sLockType, (*ldpp)->LOffset, (*ldpp)->LLength,