summaryrefslogtreecommitdiff
path: root/sound/i2c
diff options
context:
space:
mode:
authorAndreas Gruenbacher <agruenba@redhat.com>2018-06-19 15:10:55 -0700
committerDarrick J. Wong <darrick.wong@oracle.com>2018-06-19 15:10:55 -0700
commitebf00be37de35788cad72f4f20b4a39e30c0be4a (patch)
treeda2cb75db298aea59b6b9f0051abe2d75153fb70 /sound/i2c
parent3d7b6b21f6c590c4d70b311bbdd78a214637c9c7 (diff)
downloadlwn-ebf00be37de35788cad72f4f20b4a39e30c0be4a.tar.gz
lwn-ebf00be37de35788cad72f4f20b4a39e30c0be4a.zip
iomap: complete partial direct I/O writes synchronously
According to xfstest generic/240, applications seem to expect direct I/O writes to either complete as a whole or to fail; short direct I/O writes are apparently not appreciated. This means that when only part of an asynchronous direct I/O write succeeds, we can either fail the entire write, or we can wait for the partial write to complete and retry the remaining write as buffered I/O. The old __blockdev_direct_IO helper has code for waiting for partial writes to complete; the new iomap_dio_rw iomap helper does not. The above mentioned fallback mode is needed for gfs2, which doesn't allow block allocations under direct I/O to avoid taking cluster-wide exclusive locks. As a consequence, an asynchronous direct I/O write to a file range that contains a hole will result in a short write. In that case, wait for the short write to complete to allow gfs2 to recover. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'sound/i2c')
0 files changed, 0 insertions, 0 deletions