Kernel crash with 2.6.29 + nfs + xfs (radix-tree)

Christoph Hellwig hch at infradead.org
Sun Jun 7 13:55:58 CDT 2009


On Sun, Jun 07, 2009 at 05:28:45PM +0000, Martin Spott wrote:
> reconnect_path: npd != pd
> reconnect_path: npd != pd
> reconnect_path: npd != pd
> [...]
> 
> 
> ....  I'm unable to find any helpful information in this context.
> Anything I could try - this sunday evening ?

That warning is what really makes me freak out, as it really, really
shouldn't happen.  Can you see if it gives any additional useful output
with the patch below?


Index: linux-2.6/fs/exportfs/expfs.c
===================================================================
--- linux-2.6.orig/fs/exportfs/expfs.c	2009-06-07 20:40:09.085814403 +0200
+++ linux-2.6/fs/exportfs/expfs.c	2009-06-07 20:54:47.550942377 +0200
@@ -88,6 +88,14 @@ find_disconnected_root(struct dentry *de
 	return dentry;
 }
 
+static void dump_dentry(struct dentry *dentry, const char *var)
+{
+	printk("%s: dentry 0x%p inode 0x%p ino %lld name %s\n",
+		var, dentry, dentry->d_inode,
+		dentry->d_inode ?
+			(unsigned long long)dentry->d_inode->i_ino : 0,
+		dentry->d_name.name);
+}
 
 /*
  * Make sure target_dir is fully connected to the dentry tree.
@@ -187,8 +195,11 @@ reconnect_path(struct vfsmount *mnt, str
 			 */
 			if (npd == pd)
 				noprogress = 0;
-			else
+			else {
 				printk("%s: npd != pd\n", __func__);
+				dump_dentry(npd, "npd");
+				dump_dentry(pd, "pd");
+			}
 			dput(npd);
 			dput(ppd);
 			if (IS_ROOT(pd)) {




More information about the xfs mailing list