[OpenAFS-devel] kernel BUG at /scratch/openafs/src/libafs/MODLOAD-2.6.13-MP/rx_kcommon.c:131!

chas williams - CONTRACTOR chas@cmf.nrl.navy.mil
Mon, 05 Sep 2005 09:25:53 -0400


In message <431AF7D4.4020806@ribosome.natur.cuni.cz>,=?windows-1252?Q?Martin_MOKREJ=8A?= writes:
>afs_dentry_iput("/", e7d1ed64)
>inode freed while on LRU------------[ cut here ]------------

i suspected it would the root mount.  try adding this patch.

during cell setup you create a readonly replica of the root volume.
afs switches over to this readonly path in afs_CheckRootVolume().
but the LINUX client doesnt have a provision for revalidating the root
mount point (the dentry needs invalidated and revalidated).  this patch
prevents the switchover and will let me know if my theory is correct.

Index: src/afs/afs_daemons.c
===================================================================
RCS file: /cvs/openafs/src/afs/afs_daemons.c,v
retrieving revision 1.33
diff -u -u -r1.33 afs_daemons.c
--- src/afs/afs_daemons.c	3 Apr 2005 18:13:30 -0000	1.33
+++ src/afs/afs_daemons.c	5 Sep 2005 13:07:07 -0000
@@ -309,8 +309,12 @@
 		 * count to zero and fs checkv is executed when the current
 		 * directory is /afs.
 		 */
+#ifdef AFS_LINUX20_ENV
+		printk("afs_CheckVolume():  afs_root changed.\n");
+#else
 		AFS_FAST_RELE(afs_globalVp);
 		afs_globalVp = 0;
+#endif
 	    }
 	    afs_rootFid.Fid.Volume = volid;
 	    afs_rootFid.Fid.Vnode = 1;