xfs: external logs need to flush data device
authorDave Chinner <dchinner@redhat.com>
Tue, 27 Jul 2021 23:23:47 +0000 (16:23 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 29 Jul 2021 16:27:27 +0000 (09:27 -0700)
commitb5d721eaae47eaa4b4c2754699dadacc4cbca2e0
treeb841f58b62ace8ee89e6aef09bc7b04d886881b5
parentb1e27239b9169f07edba0ca0e52805645a1768ba
xfs: external logs need to flush data device

The recent journal flush/FUA changes replaced the flushing of the
data device on every iclog write with an up-front async data device
cache flush. Unfortunately, the assumption of which this was based
on has been proven incorrect by the flush vs log tail update
ordering issue. As the fix for that issue uses the
XLOG_ICL_NEED_FLUSH flag to indicate that data device needs a cache
flush, we now need to (once again) ensure that an iclog write to
external logs that need a cache flush to be issued actually issue a
cache flush to the data device as well as the log device.

Fixes: eef983ffeae7 ("xfs: journal IO cache flush reductions")
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
fs/xfs/xfs_log.c