]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
xfs: refine the unaligned check for always COW inodes in xfs_file_dio_write
authorChristoph Hellwig <hch@lst.de>
Fri, 27 Oct 2023 07:58:24 +0000 (09:58 +0200)
committerChristoph Hellwig <hch@lst.de>
Mon, 3 Mar 2025 15:16:44 +0000 (08:16 -0700)
commit6fff175279e4682b4eff25182808e0b1c90347cf
treee479e6c1994ad90546ca61bb3c91ea766531a54a
parent8ae4c8cec0bb4f437c16ba5f4b4d63a1f3a87062
xfs: refine the unaligned check for always COW inodes in xfs_file_dio_write

For always COW inodes we also must check the alignment of each individual
iovec segment, as they could end up with different I/Os due to the way
bio_iov_iter_get_pages works, and we'd then overwrite an already written
block.  The existing always_cow sysctl based code doesn't catch this
because nothing enforces that blocks aren't rewritten, but for zoned XFS
on sequential write required zones this is a hard error.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
fs/xfs/xfs_file.c