]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
avoid downward vcache pressure when entries are free
authorDerrick Brashear <shadow@dementia.org>
Fri, 29 Apr 2011 07:59:19 +0000 (03:59 -0400)
committerDerrick Brashear <shadow@dementia.org>
Tue, 3 May 2011 11:56:06 +0000 (04:56 -0700)
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 <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit fd545c51fe34b1452f09d4fbf6458f5b1557e895)

Change-Id: Ia19b748596eadc75c6487d5fe854d2c7c4a4595a
Reviewed-on: http://gerrit.openafs.org/4615
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/afs/afs_daemons.c

index 91466b76e2715e1f662cf887e190fdf7d5bbc130..a87f8503358e2cfeb759d3f3b8fb8a8e516b7bc8 100644 (file)
@@ -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;
         }