balance afs_vcount in non-linux CM
[openafs.git] / src / afs / afs_vcache.c
index 130868e..e515d3c 100644 (file)
@@ -205,7 +205,8 @@ afs_FlushVCache(struct vcache *avc, int *slept)
     vn_reinit(AFSTOV(avc));
 #endif
     afs_FreeAllAxs(&(avc->Access));
-    afs_QueueVCB(avc);
+    if (!afs_shuttingdown)
+       afs_QueueVCB(avc);
     ObtainWriteLock(&afs_xcbhash, 460);
     afs_DequeueCallback(avc);  /* remove it from queued callbacks list */
     avc->f.states &= ~(CStatd | CUnique);
@@ -817,6 +818,7 @@ afs_NewVCache_int(struct VenusFid *afid, struct server *serverp, int seq)
        tvc = freeVCList;       /* take from free list */
        freeVCList = tvc->nextfree;
        tvc->nextfree = NULL;
+       afs_vcount++; /* balanced by FlushVCache */
     } /* end of if (!freeVCList) */
 
 #endif /* AFS_LINUX22_ENV */