From: Andrew Deason Date: Thu, 28 Apr 2011 16:48:18 +0000 (-0500) Subject: libafs: Use vcount, not maxvcount to trim vcaches X-Git-Tag: upstream/1.8.0_pre1^2~3779 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=2a2206bfe16815a6625fee4d37520e9676d88ab4;p=packages%2Fo%2Fopenafs.git libafs: Use vcount, not maxvcount to trim vcaches Every five minutes we afs_ShakeLooseVCaches to try and return the number of vcaches in use down to the originally configured -stat level (when we are using dynamic vcaches). We should calculate how many vcaches to flush based on the number of currently active vcaches (afs_vcount), not the peak number (afs_maxvcount). Otherwise, once we exceed the configured -stat level, we will always keep trying to flush numerous vcaches, even if we barely have any vcaches in use. Change-Id: I875fc1d33c817dde2230946b852bb74f8ffd84c2 Reviewed-on: http://gerrit.openafs.org/4584 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/afs/afs_daemons.c b/src/afs/afs_daemons.c index 8938ea837..e6d2590b2 100644 --- a/src/afs/afs_daemons.c +++ b/src/afs/afs_daemons.c @@ -236,10 +236,10 @@ 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_maxvcount <= afs_cacheStats) + if (afs_vcount <= afs_cacheStats) anumber = VCACHE_FREE; else - anumber = VCACHE_FREE + (afs_maxvcount - afs_cacheStats); + anumber = VCACHE_FREE + (afs_vcount - afs_cacheStats); ObtainWriteLock(&afs_xvcache, 734); afs_ShakeLooseVCaches(anumber);