aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/perf
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2025-07-30 12:28:41 +0200
committerChristian Brauner <brauner@kernel.org>2025-08-11 14:51:49 +0200
commit6b65028e2b51c023a816eabffea88980fdd5564e (patch)
tree32ecfe53ad5b362dd7703a20f577f5b0bfd1be22 /tools/perf
parentfs: writeback: fix use-after-free in __mark_inode_dirty() (diff)
downloadwireguard-linux-6b65028e2b51c023a816eabffea88980fdd5564e.tar.xz
wireguard-linux-6b65028e2b51c023a816eabffea88980fdd5564e.zip
iomap: Fix broken data integrity guarantees for O_SYNC writes
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@oracle.com> CC: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Fixes: d279c80e0bac ("iomap: inline iomap_dio_bio_opflags()") CC: stable@vger.kernel.org Signed-off-by: Jan Kara <jack@suse.cz> Link: https://lore.kernel.org/20250730102840.20470-2-jack@suse.cz Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Reviewed-by: John Garry <john.g.garry@oracle.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'tools/perf')
0 files changed, 0 insertions, 0 deletions