> 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
> @@ -701,6 +701,16 @@ start_journal_io:
> }
> }
>
> + err = journal_finish_inode_data_buffers(journal, commit_transaction);
> + if (err) {
> + printk(KERN_WARNING
> + "JBD2: Detected IO errors while flushing file data "
> + "on %s\n", journal->j_devname);
> + if (journal->j_flags & JBD2_ABORT_ON_SYNCDATA_ERR)
> + jbd2_journal_abort(journal, err);
> + err = 0;
> + }
> +
> /*
> * If the journal is not located on the file system device,
> * then we must flush the file system device before we issue
> @@ -719,19 +729,6 @@ start_journal_io:
> &cbh, crc32_sum);
> if (err)
> __jbd2_journal_abort_hard(journal);
> - if (journal->j_flags & JBD2_BARRIER)
> - blkdev_issue_flush(journal->j_dev, GFP_KERNEL, NULL,
> - BLKDEV_IFL_WAIT);
> - }
> -
> - err = journal_finish_inode_data_buffers(journal, commit_transaction);
> - if (err) {
> - printk(KERN_WARNING
> - "JBD2: Detected IO errors while flushing file data "
> - "on %s\n", journal->j_devname);
> - if (journal->j_flags & JBD2_ABORT_ON_SYNCDATA_ERR)
> - jbd2_journal_abort(journal, err);
> - err = 0;
> }
>
> /* Lo and behold: we have just managed to send a transaction to
> @@ -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,
> + BLKDEV_IFL_WAIT);
> + }
>
> if (err)
> jbd2_journal_abort(journal, err);
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to
majordomo@vger.kernel.org
> More majordomo info at
http://vger.kernel.org/majordomo-info.html