mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-18 15:36:46 +07:00
xfs: don't use REQ_PREFLUSH for split log writes
If we have to split a log write because it wraps the end of the log we can't just use REQ_PREFLUSH to flush before the first log write, as the writes might get reordered somewhere in the I/O stack. Issue a manual flush in that case so that the ordering of the two log I/Os doesn't matter. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
366fc4b898
commit
1f9489be02
@ -1904,7 +1904,7 @@ xlog_sync(
|
||||
* synchronously here; for an internal log we can simply use the block
|
||||
* layer state machine for preflushes.
|
||||
*/
|
||||
if (log->l_mp->m_logdev_targp != log->l_mp->m_ddev_targp)
|
||||
if (log->l_mp->m_logdev_targp != log->l_mp->m_ddev_targp || split)
|
||||
xfs_blkdev_issue_flush(log->l_mp->m_ddev_targp);
|
||||
else
|
||||
bp->b_flags |= XBF_FLUSH;
|
||||
|
Loading…
Reference in New Issue
Block a user