Re: [Cluster-devel] [PATCH 05/12] gfs2: fix O_SYNC write handling
From: Andreas Gruenbacher
Date: Thu Feb 06 2020 - 10:32:15 EST
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