On 30/07/2025 11:28, Jan Kara wrote:
Commit d279c80e0bac ("iomap: inline iomap_dio_bio_opflags()") has broken the logic in iomap_dio_bio_iter() in a way that when the device does support FUA (or has no writeback cache) and the direct IO happens to freshly allocated or unwritten extents, we will*not* issue fsync after completing direct IO O_SYNC / O_DSYNC write because the IOMAP_DIO_WRITE_THROUGH flag stays mistakenly set. Fix the problem by clearing IOMAP_DIO_WRITE_THROUGH whenever we do not perform FUA write as it was originally intended. CC: John Garry<john.g.garry@xxxxxxxxxx> CC: "Ritesh Harjani (IBM)"<ritesh.list@xxxxxxxxx> Fixes: d279c80e0bac ("iomap: inline iomap_dio_bio_opflags()") CC:stable@xxxxxxxxxxxxxxx Signed-off-by: Jan Kara<jack@xxxxxxx>
thanks Reviewed-by: John Garry <john.g.garry@xxxxxxxxxx>