Hi Christoph, thanks for this patch, and sorry for taking so long to react. On Tue, Jan 14, 2020 at 5:54 PM Christoph Hellwig <hch@xxxxxx> wrote: > Don't ignore the return value from generic_write_sync for the direct to > buffered I/O callback case when written is non-zero. Also don't bother > to call generic_write_sync for the pure direct I/O case, as iomap_dio_rw > already takes care of that. I like the idea, but the patch as is doesn't quite work: iomap_dio_rw already bumps iocb->ki_pos, so we end up with the wrong value by adding the (direct + buffered) write size again. We'd probably also be better served by replacing filemap_write_and_wait_range with generic_write_sync + IOCB_DSYNC in the buffered fallback case. I'll send an update that you'll hopefully like. Andreas