]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
afs: Fix VLRU traversal sanity check
authorAndrew Deason <adeason@sinenomine.net>
Fri, 16 Nov 2012 20:18:32 +0000 (14:18 -0600)
committerStephan Wiesand <stephan.wiesand@desy.de>
Thu, 6 Dec 2012 17:43:24 +0000 (09:43 -0800)
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.

Reviewed-on: http://gerrit.openafs.org/8471
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
(cherry picked from commit bc6dd95016c63d0742698d902aebf73c01162c24)

Change-Id: Id4884e45a52813eb33926958b11148a021ca3057
Reviewed-on: http://gerrit.openafs.org/8606
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Paul Smeddle <paul.smeddle@gmail.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/afs_vcache.c

index ca07e923a903a7736dc4aa7f4b344857675c7805..29f7a4c0c0f8eb09d59af08adb6902ef8cf7e4dc 100644 (file)
@@ -670,9 +670,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) {