From: Jeffrey Altman Date: Sun, 24 Feb 2008 15:35:34 +0000 (+0000) Subject: DEVEL15-windows-scache-clean-bufs-20080224 X-Git-Tag: openafs-devel-1_5_33~12 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=ea2fe737413187ec899b03dc8d160a3d432f9fda;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-scache-clean-bufs-20080224 LICENSE MIT In MergeStatus, only remove clean buffers from the hash table. (cherry picked from commit f52c6e1bc020a0985d2bc168d06b2c87fe7a2797) --- diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index e4f73568f..953d88f0d 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -1688,7 +1688,8 @@ void cm_MergeStatus(cm_scache_t *dscp, */ if (cm_FidCmp(&scp->fid, &bp->fid) == 0 && lock_TryMutex(&bp->mx)) { - if (bp->refCount == 0) { + if (bp->refCount == 0 && + !(bp->flags & CM_BUF_READING | CM_BUF_WRITING | CM_BUF_DIRTY)) { prevBp = bp->fileHashBackp; bp->fileHashBackp = bp->fileHashp = NULL; if (prevBp)