mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
xfs: fix handling of synchronous errors in xfs_buf_submit
Synchronous readers and writers already run __xfs_buf_ioend from
xfs_buf_iowait after being woken through bp->b_iowait, so we
should not call it here, which can lead to double completions.
Fixes: 4b90de5bc0 ("xfs: reduce context switches for synchronous buffered I/O")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
This commit is contained in:
parent
b53177d418
commit
93e21ef2a8
|
|
@ -1404,12 +1404,12 @@ xfs_buf_submit(
|
|||
bp->b_flags &= ~XBF_DONE;
|
||||
xfs_buf_stale(bp);
|
||||
end_io:
|
||||
if (!__xfs_buf_ioend(bp))
|
||||
return;
|
||||
if (bp->b_flags & XBF_ASYNC)
|
||||
xfs_buf_relse(bp);
|
||||
else
|
||||
if (bp->b_flags & XBF_ASYNC) {
|
||||
if (__xfs_buf_ioend(bp))
|
||||
xfs_buf_relse(bp);
|
||||
} else {
|
||||
complete(&bp->b_iowait);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user