On Tue, Oct 08, 2024 at 10:59:11AM GMT, Christoph Hellwig wrote: > Hi all, > Just as a heads up to Christian, that I'm adding this to my queue now as most of these are xfs-related. Carlos > 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. > > > Changes since v4: > - unshare also already holds the invalidate_lock as found out by recent > fsstress enhancements > > Changes since v3: > - improve two comments > > Changes since v2: > - drop the patches already merged and rebased to latest Linus' tree > - moved taking invalidate_lock from iomap to the caller to avoid a > too complicated locking protocol > - better document the xfs_file_write_zero_eof return value > - fix a commit log typo > > Changes since v1: > - move the already reviewed iomap prep changes to the beginning in case > Christian wants to take them ASAP > - take the invalidate_lock for post-EOF zeroing so that we have a > consistent locking pattern for zeroing. > > Diffstat: > Documentation/filesystems/iomap/operations.rst | 2 > fs/iomap/buffered-io.c | 111 ++++++------------- > fs/xfs/xfs_aops.c | 4 > fs/xfs/xfs_bmap_util.c | 10 + > fs/xfs/xfs_bmap_util.h | 2 > fs/xfs/xfs_file.c | 146 +++++++++++++++---------- > fs/xfs/xfs_iomap.c | 67 +++++++---- > include/linux/iomap.h | 20 ++- > 8 files changed, 198 insertions(+), 164 deletions(-) >