[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: shutdown umount hangs



this won't fix anything but it may help us understand the problem.



--
Russell Cattelan
--
Digital Elves inc. -- Currently on loan to SGI
Linux XFS core developer.


--- /usr/tmp/TmpDir.585-0/linux/fs/xfs/xfs_mount.c_1.249	Thu Apr  5 18:49:28 2001
+++ linux/fs/xfs/xfs_mount.c	Thu Apr  5 18:48:51 2001
@@ -29,7 +29,7 @@
  * 
  * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
  */
-
+#define _PAGE_BUF_INTERNAL_
 #include <xfs.h>
 
 
@@ -1075,12 +1075,13 @@
 	xfs_buf_t	*sbp;
 	xfs_sb_t	*sb;
 	int		error = 0;
-
+	page_buf_private_t *pb;
 	/*
 	 * skip superblock write if fs is read-only, or
 	 * if we are doing a forced umount.
 	 */
 	sbp = xfs_getsb(mp, 0);
+	pb = (page_buf_private_t *)sbp;
 	if (!(XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY ||
 		XFS_FORCED_SHUTDOWN(mp))) {
 		/*
@@ -1100,7 +1101,11 @@
 		XFS_BUF_WRITE(sbp);
 		xfs_bwait_unpin(sbp);
 		ASSERT(XFS_BUF_TARGET(sbp) == mp->m_dev);
+		printk ("xfs_unmountfs_writesb pre  strat flags 0x%x  pb_iodonesema cnt(%d,%d)sl\n",
+				sbp->pb_flags,pb->pb_iodonesema.count.counter, pb->pb_iodonesema.sleepers);
 		xfsbdstrat(mp, sbp);
+		printk ("xfs_unmountfs_writesb prot strat flags 0x%x  pb_iodonesema cnt(%d,%d)sl\n",
+				sbp->pb_flags,pb->pb_iodonesema.count.counter, pb->pb_iodonesema.sleepers);
 		/* Nevermind errors we might get here. */
 		error = xfs_iowait(sbp);
 		if (error && mp->m_mk_sharedro)