On Mon, May 06, 2019 at 03:49:52PM +0200, Lukas Czerner wrote: > Unaligned AIO must be serialized because the zeroing of partial blocks > of unaligned AIO can result in data corruption in case it's overlapping > another in flight IO. > > Currently we wait for all unwritten extents before we submit unaligned > AIO which protects data in case of unaligned AIO is following overlapping > IO. However if a unaligned AIO is followed by overlapping aligned AIO we > can still end up corrupting data. > > To fix this, we must make sure that the unaligned AIO is the only IO in > flight by waiting for unwritten extents conversion not just before the > IO submission, but right after it as well. > > This problem can be reproduced by xfstest generic/538 > > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx> Many thanks, applied. - Ted