From a1959864eebf29dbebfff71b9659646d036fcba3 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Fri, 29 Apr 2011 03:59:19 -0400 Subject: [PATCH] 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 --- src/afs/afs_daemons.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) 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; } -- 2.39.5