From 2a6c074d3c9fd9d8db3ebab89797ec2ecaed8528 Mon Sep 17 00:00:00 2001 From: Nickolai Zeldovich Date: Thu, 22 Aug 2002 20:43:30 +0000 Subject: [PATCH] Drop GLOCK over the entire loop iterating over the iovec, since it's not needed for any operations performed in the loop (rather than dropping it just for the memcpy inside the loop). --- src/afs/afs_memcache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/afs/afs_memcache.c b/src/afs/afs_memcache.c index 30b55c59b..8981c2ca0 100644 --- a/src/afs/afs_memcache.c +++ b/src/afs/afs_memcache.c @@ -242,18 +242,18 @@ int afs_MemWritevBlk(register struct memCacheEntry *mceP, int offset, struct iov afs_osi_Free(oldData,mceP->dataSize); mceP->dataSize = size+offset; } + AFS_GUNLOCK(); if (mceP->size < offset) memset(mceP->data+mceP->size, 0, offset-mceP->size); for (bytesWritten = 0, i = 0 ; i < nio && size > 0 ; i++) { bytesToWrite = (size < iov[i].iov_len) ? size : iov[i].iov_len; - AFS_GUNLOCK(); memcpy(mceP->data + offset, iov[i].iov_base, bytesToWrite); - AFS_GLOCK(); offset += bytesToWrite; bytesWritten += bytesToWrite; size -= bytesToWrite; } mceP->size = (offset < mceP->size) ? mceP->size : offset; + AFS_GLOCK(); MReleaseWriteLock(&mceP->afs_memLock); return bytesWritten; -- 2.39.5