Messages in this thread | | | Date | Thu, 26 Aug 2010 13:33:27 +0400 | From | Sergei Shtylyov <> | Subject | Re: [PATCH 24.5/30] jbd2: Modify ASYNC_COMMIT code to not rely on queue draining on barrier |
| |
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
| |