[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] [PATCH 24.5/30] jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier
- From: Sergei Shtylyov <sshtylyov mvista com>
- To: Tejun Heo <teheo suse de>
- Cc: jeremy goop org, jack suse cz, snitzer redhat com, mst redhat com, linux-ide vger kernel org, dm-devel redhat com, James Bottomley suse de, konishi ryusuke lab ntt co jp, hch lst de, k-ueda ct jp nec com, vst vlnb net, linux-scsi vger kernel org, rusty rustcorp com au, linux-raid vger kernel org, swhiteho redhat com, chris mason oracle com, tytso mit edu, jaxboe fusionio com, linux-kernel vger kernel org, linux-fsdevel vger kernel org, rwheeler redhat com
- Subject: Re: [dm-devel] [PATCH 24.5/30] jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier
- Date: Thu, 26 Aug 2010 13:33:27 +0400
Hello.
Tejun Heo wrote:
From 49f4cef00a1bd3c79fb2fe1f982c5157f0792867 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack suse cz>
Currently JBD2 relies blkdev_issue_flush() draining the queue when ASYNC_COMMIT
feature is set. This property is going away so make JBD2 wait for buffers it
needs on its own before submitting the cache flush.
Signed-off-by: Jan Kara <jack suse cz>
Signed-off-by: Tejun Heo <tj kernel org>
---
This patch is necessary before enabling flush/fua support in jbd2.
The flush-fua git tree has been udpated to included this between patch
24 and 25.
Thanks.
fs/jbd2/commit.c | 29 ++++++++++++++++-------------
1 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
index 7c068c1..8797fd1 100644
--- a/fs/jbd2/commit.c
+++ b/fs/jbd2/commit.c
[...]
@@ -845,6 +842,12 @@ wait_for_iobuf:
}
if (!err && !is_journal_aborted(journal))
err = journal_wait_on_commit_record(journal, cbh);
+ if (JBD2_HAS_INCOMPAT_FEATURE(journal,
+ JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT) &&
+ journal->j_flags & JBD2_BARRIER) {
+ blkdev_issue_flush(journal->j_dev, GFP_KERNEL, NULL,
Overindented line.
+ BLKDEV_IFL_WAIT);
+ }
if (err)
jbd2_journal_abort(journal, err);
WBR, Sergei
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]