On Tue, Nov 20, 2018 at 05:17:06PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > If userspace hands us a not-block-aligned directio write, we'll fall > back to a buffered write for the read-modify-write operation. > Unfortunately, we don't flush the page cache after a successful > fallback CoW, which means we break userspace's expectation that the data > has been sent to the drive. There is not such expectation. Even with O_DIRECT you need an explicit O_DSYNC to guarantee that. Note that generic_file_direct_write doesn't force O_DSYNC either.