From ea2fe737413187ec899b03dc8d160a3d432f9fda Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Sun, 24 Feb 2008 15:35:34 +0000 Subject: [PATCH] DEVEL15-windows-scache-clean-bufs-20080224 LICENSE MIT In MergeStatus, only remove clean buffers from the hash table. (cherry picked from commit f52c6e1bc020a0985d2bc168d06b2c87fe7a2797) --- src/WINNT/afsd/cm_scache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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) -- 2.39.5