From: Derrick Brashear Date: Fri, 29 Apr 2011 07:59:19 +0000 (-0400) Subject: avoid downward vcache pressure when entries are free X-Git-Tag: upstream/1.6.0.pre5^2~3 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=a1959864eebf29dbebfff71b9659646d036fcba3;p=packages%2Fo%2Fopenafs.git avoid downward vcache pressure when entries are free we try to keep VCACHE_FREE entries free. if there's already that many free, do nothing. Reviewed-on: http://gerrit.openafs.org/4595 Tested-by: BuildBot Reviewed-by: Andrew Deason Reviewed-by: Derrick Brashear (cherry picked from commit fd545c51fe34b1452f09d4fbf6458f5b1557e895) Change-Id: Ia19b748596eadc75c6487d5fe854d2c7c4a4595a Reviewed-on: http://gerrit.openafs.org/4615 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/afs/afs_daemons.c b/src/afs/afs_daemons.c index 91466b76e..a87f85033 100644 --- a/src/afs/afs_daemons.c +++ b/src/afs/afs_daemons.c @@ -215,15 +215,13 @@ afs_Daemon(void) if (afsd_dynamic_vcaches && (last5MinCheck + 300 < now)) { /* start with trying to drop us back to our base usage */ - int anumber; - if (afs_vcount <= afs_cacheStats) - anumber = VCACHE_FREE; - else - anumber = VCACHE_FREE + (afs_vcount - afs_cacheStats); - - ObtainWriteLock(&afs_xvcache, 734); - afs_ShakeLooseVCaches(anumber); - ReleaseWriteLock(&afs_xvcache); + int anumber = VCACHE_FREE + (afs_vcount - afs_cacheStats); + + if (anumber > 0) { + ObtainWriteLock(&afs_xvcache, 734); + afs_ShakeLooseVCaches(anumber); + ReleaseWriteLock(&afs_xvcache); + } last5MinCheck = now; }