[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.00.1004281833230.2951@localhost.localdomain>
Date:	Wed, 28 Apr 2010 18:34:31 +0200 (CEST)
From:	Thomas Gleixner <tglx@...utronix.de>
To:	Xianghua Xiao <xiaoxianghua@...il.com>
cc:	john stultz <johnstul@...ibm.com>,
	LKML <linux-kernel@...r.kernel.org>
Subject: Re: 2.6.33.3-rt16 Oops caused by umount
On Wed, 28 Apr 2010, Xianghua Xiao wrote:
> Just tried the patch, still got umount hang, please see below.
Can you please apply the patch below and provide the debug output ?
Thanks,
	tglx
---
 fs/file_table.c |   22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)
Index: linux-2.6-tip/fs/file_table.c
===================================================================
--- linux-2.6-tip.orig/fs/file_table.c
+++ linux-2.6-tip/fs/file_table.c
@@ -410,7 +410,27 @@ int fs_may_remount_ro(struct super_block
 		list = &sb->s_files;
 #endif
 		list_for_each_entry(file, list, f_u.fu_list) {
-			struct inode *inode = file->f_path.dentry->d_inode;
+			struct inode *inode;
+
+			if (!file->f_path) {
+				printk(KERN_ERR "file %p fpath == NULL\n",
+				       file);
+				continue;
+			}
+
+			if (!file->f_path.dentry) {
+				printk(KERN_ERR "file %p dentry == NULL\n",
+				       file);
+				continue;
+			}
+
+			if (!file->f_path.dentry->d_inode) {
+				printk(KERN_ERR "file %p d_inode == NULL\n",
+				       file);
+				continue;
+			}
+
+			inode = file->f_path.dentry->d_inode;
 
 			/* File with pending delete? */
 			if (inode->i_nlink == 0)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
Powered by blists - more mailing lists
 
