Thread (7 messages) 7 messages, 4 authors, 2012-02-20

Re: [PATCH 1/1] xfs: fix buffer flushing during log unmount

From: Christoph Hellwig <hch@infradead.org>
Date: 2012-02-17 19:15:31
Also in: lkml

Whenever there is a mount/unmount failure - there is a chance of calling the
callbacks functions once - transaction ail mount pointer is destroyed. So, it results
in NULL pointer exception followed by hang. So, before unmount of the log - flush all
the pending buffers.
 void
 xfs_log_unmount(xfs_mount_t *mp)
 {
+	int error = 0;
+	/*
+	 * Make sure all buffers have been flushed and completed before
+	 * unmounting the log.
+	 */
+	error = xfs_flush_buftarg(mp->m_ddev_targp, 1);
+	if (error)
+		cmn_err(CE_WARN, "%d busy buffers during log unmount.", error);
+	xfs_wait_buftarg(mp->m_ddev_targp);
+	
We do exactly that sequence before the xfs_log_unmount_write call on
umount.  Care to explain what code in xfs_log_unmount_write would
require this to be called again?

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help