[OpenAFS] 1.3.85 Still Crashing w/ Fedora 3 (Linux 2.6.11)

chas williams - CONTRACTOR chas@cmf.nrl.navy.mil
Tue, 19 Jul 2005 10:55:02 -0400


In message <4314B1E2303B938B7F24C933@rowan.devrandom.org>,Jason McCormick write
s:
>VMware has its own kernel modules that you compile for each kernel.
>Basically they provide hooks into system-level operations like networking,
>etc.  I've used VMware for years and we use VMware with AFS 1.2-based
>systems on AS3 and haven't had problems with it.

i have read a bit about vmware. is linux the guest or host operating
system?  are you running afs on a guest or host?

>time.  This oops was taking from one of the build/development hosts.  I
>cannot produce it with regularity either, but it's not infrequent either.

try this patch.

Index: src/afs/LINUX/osi_misc.c
===================================================================
RCS file: /cvs/openafs/src/afs/LINUX/osi_misc.c,v
retrieving revision 1.44
diff -u -u -r1.44 osi_misc.c
--- src/afs/LINUX/osi_misc.c	11 Jul 2005 18:45:51 -0000	1.44
+++ src/afs/LINUX/osi_misc.c	19 Jul 2005 14:03:25 -0000
@@ -336,16 +336,25 @@
     struct vcache *tvc, *nvc;
     extern struct vcache *afs_vhashT[VCSIZE];
 
+    ObtainWriteLock(&afs_xvcache, 535);
+
     for (i = 0; i < VCSIZE; i++) {
 	for (tvc = afs_vhashT[i]; tvc; ) {
 	    int slept;
 	
 	    nvc = tvc->hnext;
-	    if (afs_FlushVCache(tvc, &slept))		/* slept always 0 for linux? */
-		printf("Failed to invalidate all pages on inode 0x%p\n", tvc);
+	    if (afs_FlushVCache(tvc, &slept)) {		/* slept always 0 for linux? */
+		struct dentry *dp;
+
+		dp = d_find_alias(AFSTOV(tvc));
+		printf("Failed to invalidate all pages on inode 0x%p refcount %d states 0x%x name %s\n",
+		       tvc, VREFCOUNT(tvc), tvc->states, dp ? (char *) dp->d_name.name : "<null>");
+	    }
 	    tvc = nvc;
 	}
     }
+
+    ReleaseWriteLock(&afs_xvcache);
 }
 
 struct task_struct *rxk_ListenerTask;