]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-darwin90-disk-cache-20071016
authorDerrick Brashear <shadow@dementia.org>
Wed, 17 Oct 2007 04:51:44 +0000 (04:51 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 17 Oct 2007 04:51:44 +0000 (04:51 +0000)
FIXES 43303

don't break memcache, also

(cherry picked from commit 30193a043e0b3d965139ec92227f73ce31f24403)

src/afs/afs_call.c

index 1b04bd0cb86dc1723ede8c12e4a8d5e11c856baa..0863c31490874f0f7d6c9dd0a76eacf6f0094dcd 100644 (file)
@@ -508,11 +508,12 @@ afs_DaemonOp(long parm, long parm2, long parm3, long parm4, long parm5,
 static void
 wait_for_cachedefs(void) {
 #ifdef AFS_CACHE_VNODE_PATH
-    while ((afs_numcachefiles < 1) || (afs_numfilesperdir < 1) ||
-          (afs_cachebasedir[0] != '/')) {
-       printf("afs: waiting for cache parameter definitions\n");
-       afs_osi_Sleep(&afs_initState);
-    }
+    if (cacheDiskType != AFS_FCACHE_TYPE_MEM) 
+       while ((afs_numcachefiles < 1) || (afs_numfilesperdir < 1) ||
+              (afs_cachebasedir[0] != '/')) {
+           printf("afs: waiting for cache parameter definitions\n");
+           afs_osi_Sleep(&afs_initState);
+       }
 #endif
 }
 
@@ -894,22 +895,24 @@ afs_syscall_call(parm, parm2, parm3, parm4, parm5, parm6)
        osi_FreeSmallSpace(tbuffer);
     } else if (parm == AFSOP_GO) {
 #ifdef AFS_CACHE_VNODE_PATH
-       afs_int32 dummy;
-
-       wait_for_cachedefs();
-
+       if (cacheDiskType != AFS_FCACHE_TYPE_MEM) {
+           afs_int32 dummy;
+           
+           wait_for_cachedefs();
+           
 #ifdef AFS_DARWIN80_ENV
-       get_vfs_context();
-#endif
-       if ((afs_numcachefiles > 0) && (afs_numfilesperdir > 0) && 
-           (afs_cachebasedir[0] == '/')) {
-           for (dummy = 0; dummy < afs_numcachefiles; dummy++) {
-               code = afs_InitCacheFile(NULL, dummy);
-           }
-       }
+           get_vfs_context();
+#endif
+           if ((afs_numcachefiles > 0) && (afs_numfilesperdir > 0) && 
+               (afs_cachebasedir[0] == '/')) {
+               for (dummy = 0; dummy < afs_numcachefiles; dummy++) {
+                   code = afs_InitCacheFile(NULL, dummy);
+               }
+           }
 #ifdef AFS_DARWIN80_ENV
-       put_vfs_context();
+           put_vfs_context();
 #endif
+       }
 #endif
        /* the generic initialization calls come here.  One parameter: should we do the
         * set-time operation on this workstation */