Re: fix stale delalloc punching for COW I/O v4

Christian Brauner
2024-09-25T09:24:48Z

On Tue, 24 Sep 2024 09:40:42 +0200, Christoph Hellwig wrote:
> this is another fallout from the zoned XFS work, which stresses the XFS
> COW I/O path very heavily. It affects normal I/O to reflinked files as
> well, but is very hard to hit there.
>
> The main problem here is that we only punch out delalloc reservations
> from the data fork, but COW I/O places delalloc extents into the COW
> fork, which means that it won't get punched out forshort writes.
>
> [...]

Sorry, pulled v3 on accident. Now actually pulled v4.

---

Applied to the vfs.iomap.v6.13 branch of the vfs/vfs.git tree.
Patches in the vfs.iomap.v6.13 branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs.iomap.v6.13

[01/10] iomap: factor out a iomap_last_written_block helper
https://git.kernel.org/vfs/vfs/c/5d33a6215cf4
[02/10] iomap: remove iomap_file_buffered_write_punch_delalloc
https://git.kernel.org/vfs/vfs/c/45f14ab7316c
[03/10] iomap: move locking out of iomap_write_delalloc_release
https://git.kernel.org/vfs/vfs/c/7f700d206e70
[04/10] xfs: factor out a xfs_file_write_zero_eof helper
https://git.kernel.org/vfs/vfs/c/83b6773ce54a
[05/10] xfs: take XFS_MMAPLOCK_EXCL xfs_file_write_zero_eof
https://git.kernel.org/vfs/vfs/c/63744a511a6a
[06/10] xfs: zeroing already holds invalidate_lock
https://git.kernel.org/vfs/vfs/c/7156dde42b72
[07/10] xfs: support the COW fork in xfs_bmap_punch_delalloc_range
https://git.kernel.org/vfs/vfs/c/3bc21e71b820
[08/10] xfs: share more code in xfs_buffered_write_iomap_begin
https://git.kernel.org/vfs/vfs/c/367332e4a22a
[09/10] xfs: set IOMAP_F_SHARED for all COW fork allocations
https://git.kernel.org/vfs/vfs/c/a032a49ce426
[10/10] xfs: punch delalloc extents from the COW fork for COW writes