[PATCH 018/102] xfs: do not flush data workqueues in xfs_flush_buftarg
Dave Chinner
david at fromorbit.com
Thu Aug 23 00:01:36 CDT 2012
From: Christoph Hellwig <hch at infradead.org>
Upstream commit: 5a93a064d27b42e4af1772b0599b53e3241191ac
When we call xfs_flush_buftarg (generally from sync or umount) it already
is too late to flush the data workqueues, as I/O completion is signalled
for them and we are thus already done with the data we would flush here.
There are places where flushing them might be useful, but the current
sync interface doesn't give us that opportunity.
Signed-off-by: Christoph Hellwig <hch at lst.de>
Reviewed-by: Dave Chinner <dchinner at redhat.com>
Signed-off-by: Alex Elder <aelder at sgi.com>
---
fs/xfs/linux-2.6/xfs_buf.c | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index 82fe480..4508ec2 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -1670,13 +1670,6 @@ xfs_buf_delwri_promote(
spin_unlock(&btp->bt_delwrite_lock);
}
-STATIC void
-xfs_buf_runall_queues(
- struct workqueue_struct *queue)
-{
- flush_workqueue(queue);
-}
-
/*
* Move as many buffers as specified to the supplied list
* idicating if we skipped any buffers to prevent deadlocks.
@@ -1811,9 +1804,7 @@ xfs_flush_buftarg(
LIST_HEAD(wait_list);
struct blk_plug plug;
- xfs_buf_runall_queues(xfsconvertd_workqueue);
- xfs_buf_runall_queues(xfsdatad_workqueue);
- xfs_buf_runall_queues(xfslogd_workqueue);
+ flush_workqueue(xfslogd_workqueue);
set_bit(XBT_FORCE_FLUSH, &target->bt_flags);
pincount = xfs_buf_delwri_split(target, &tmp_list, 0);
--
1.7.10
More information about the xfs
mailing list