From: Andrew Deason Date: Fri, 16 Nov 2012 20:18:32 +0000 (-0600) Subject: afs: Fix VLRU traversal sanity check X-Git-Tag: upstream/1.8.0_pre1^2~1741 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=bc6dd950;p=packages%2Fo%2Fopenafs.git afs: Fix VLRU traversal sanity check On non-Linux, the number of vcaches in the VLRU can easily exceed afs_maxvcount, since we allocate new vcaches when we run out. So, assume we only have afs_vcount vcaches on the VLRU, instead of assuming we have at most afs_maxvcount vcaches. Change-Id: I3bec8f795b1f6e086ddb490400616c5b42d8b8be Reviewed-on: http://gerrit.openafs.org/8471 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/afs/afs_vcache.c b/src/afs/afs_vcache.c index 8af3cdec2..4acfd345e 100644 --- a/src/afs/afs_vcache.c +++ b/src/afs/afs_vcache.c @@ -716,9 +716,8 @@ afs_ShakeLooseVCaches(afs_int32 anumber) uq = QPrev(tq); if (tvc->f.states & CVFlushed) { refpanic("CVFlushed on VLRU"); - /* In the other path, this was 2 * afs_cacheStats */ - } else if (!afsd_dynamic_vcaches && i++ > afs_maxvcount) { - refpanic("Exceeded pool of AFS vnodes(VLRU cycle?)"); + } else if (!afsd_dynamic_vcaches && i++ > afs_vcount) { + refpanic("Found too many AFS vnodes on VLRU (VLRU cycle?)"); } else if (QNext(uq) != tq) { refpanic("VLRU inconsistent"); } else if (tvc->f.states & CVInit) {