ShakeLooseVCaches needs to avoid CVInit vcaches
authorDerrick Brashear <shadow@dementia.org>
Mon, 19 Jul 2010 20:56:58 +0000 (16:56 -0400)
committerDerrick Brashear <shadow@dementia.org>
Mon, 19 Jul 2010 22:06:16 +0000 (15:06 -0700)
the code refactoring missed this case. sadly, it means we
can panic under heavy vcache contention.

FIXES 127645

Change-Id: I41929df066b8e3d447ba72e77be6777a306b8bf8
Reviewed-on: http://gerrit.openafs.org/2449
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/afs/afs_vcache.c

index af82951..117c919 100644 (file)
@@ -666,6 +666,8 @@ afs_ShakeLooseVCaches(afs_int32 anumber)
            refpanic("Exceeded pool of AFS vnodes(VLRU cycle?)");
        } else if (QNext(uq) != tq) {
            refpanic("VLRU inconsistent");
+       } else if (tvc->f.states & CVInit) {
+           continue;
        }
 
        fv_slept = 0;