ObtainWriteLock(&vcp->vlock, 548);
vcp->multiPage++;
ReleaseWriteLock(&vcp->vlock);
- afs_BozonLock(&vcp->pvnLock, vcp);
code =
pvn_getpages(afs_GetOnePage, vp, off, len, protp, pl, plsz, seg, addr, rw, acred);
- afs_BozonUnlock(&vcp->pvnLock, vcp);
ObtainWriteLock(&vcp->vlock, 549);
vcp->multiPage--;
ReleaseWriteLock(&vcp->vlock);
return afs_CheckCode(code, &treq, 44); /* failed to get it */
}
- afs_BozonLock(&avc->pvnLock, avc);
ObtainReadLock(&avc->lock);
afs_Trace4(afs_iclSetp, CM_TRACE_PAGEIN, ICL_TYPE_POINTER, (afs_int32) vp,
if (avc->activeV) {
ReleaseReadLock(&avc->lock);
ReleaseWriteLock(&avc->vlock);
- afs_BozonUnlock(&avc->pvnLock, avc);
afs_PutDCache(tdc);
/* Check activeV again, it may have been turned off
* while we were waiting for a lock in afs_PutDCache */
|| !hsame(avc->f.m.DataVersion, tdc->f.versionNo)) {
ReleaseReadLock(&tdc->lock);
ReleaseReadLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
afs_PutDCache(tdc);
goto retry;
}
}
afs_indexFlags[tdc->index] |= IFAnyPages;
ReleaseWriteLock(&afs_xdcache);
- afs_BozonUnlock(&avc->pvnLock, avc);
afs_PutDCache(tdc);
afs_Trace3(afs_iclSetp, CM_TRACE_PAGEINDONE, ICL_TYPE_LONG, code,
ICL_TYPE_LONG, (int)page, ICL_TYPE_LONG, Code);
if (page)
pvn_read_done(page, B_ERROR);
ReleaseReadLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
ReleaseReadLock(&tdc->lock);
afs_PutDCache(tdc);
return code;
(afs_int32) vp, ICL_TYPE_OFFSET, ICL_HANDLE_OFFSET(off),
ICL_TYPE_INT32, (afs_int32) len, ICL_TYPE_LONG, (int)flags);
avc = VTOAFS(vp);
- afs_BozonLock(&avc->pvnLock, avc);
ObtainSharedLock(&avc->lock, 247);
didWriteLock = 0;
ReleaseWriteLock(&avc->lock);
else
ReleaseSharedLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
afs_Trace2(afs_iclSetp, CM_TRACE_PAGEOUTDONE, ICL_TYPE_LONG, code,
ICL_TYPE_LONG, NPages);
AFS_GUNLOCK();
if (code)
return afs_CheckCode(code, &treq, 45);
- afs_BozonLock(&avc->pvnLock, avc);
- osi_FlushPages(avc, acred); /* hold bozon lock, but not basic vnode lock */
+ osi_FlushPages(avc, acred);
ObtainWriteLock(&avc->lock, 250);
}
if (auio->afsio_offset < 0 || (auio->afsio_offset + auio->uio_resid) < 0) {
ReleaseWriteLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
return EINVAL;
}
#ifndef AFS_64BIT_CLIENT
/* file is larger than 2GB */
if (AfsLargeFileSize(auio->uio_offset, auio->uio_resid)) {
ReleaseWriteLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
return EFBIG;
}
#endif
if (auio->uio_loffset + auio->afsio_resid > auio->uio_llimit) {
if (auio->uio_loffset >= auio->uio_llimit) {
ReleaseWriteLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
return EFBIG;
} else {
/* track # of bytes we should write, but won't because of
(avc, PRSFS_READ, &treq,
CHECK_MODE_BITS | CMB_ALLOW_EXEC_AS_READ)) {
ReleaseWriteLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
return EACCES;
}
}
code = avc->vc_error;
}
ReleaseWriteLock(&avc->lock);
- afs_BozonUnlock(&avc->pvnLock, avc);
if (!code) {
if ((ioflag & FSYNC) && (arw == UIO_WRITE)
&& !AFS_NFSXLATORREQ(acred))
if (code) {
goto out;
}
- afs_BozonLock(&avc->pvnLock, avc);
osi_FlushPages(avc, cred); /* ensure old pages are gone */
avc->f.states |= CMAPPED; /* flag cleared at afs_inactive */
- afs_BozonUnlock(&avc->pvnLock, avc);
AFS_GUNLOCK();
as_rangelock(as);
* LICENSED MATERIALS - PROPERTY OF IBM
*/
-#if (defined(AFS_SUN5_ENV))
-#define AFS_NOBOZO_LOCK
-#endif
-
#define INSTRUMENT_LOCKS
/* This is the max lock number in use. Please update it if you add any new
* lock numbers.
*/
#define MAX_LOCK_NUMBER 780
+#ifdef AFS_BOZONLOCK_ENV
struct afs_bozoLock {
short count; /* count of excl locks */
char flags; /* bit 1: is anyone waiting? */
char spare; /* for later */
char *proc; /* process holding the lock, really an afs_proc_t * */
};
-#ifndef AFS_NOBOZO_LOCK
-typedef struct afs_bozoLock afs_bozoLock_t;
-#else
-#ifdef AFS_SUN5_ENV
-typedef kmutex_t afs_bozoLock_t;
-#else
typedef struct afs_bozoLock afs_bozoLock_t;
-#endif
-#define afs_BozonLock(lock, avc)
-#define afs_BozonUnlock(lock, avc)
-#define afs_BozonInit(lock, nm)
-#define afs_CheckBozonLock(lock) 0
-#define afs_CheckBozonLockBlocking(lock) 0
-#endif
#define AFS_BOZONWAITING 1 /* someone is waiting for this lock */
+#endif
#define AFS_RWLOCK_INIT(lock, nm) Lock_Init(lock)
#undef LOCK_INIT