Re: [PATCH 2/4] xfs: convert delayed extents to unwritten when zeroing post eof blocks

From: Christoph Hellwig
Date: Tue Mar 12 2024 - 08:21:54 EST


On Mon, Mar 11, 2024 at 08:37:37AM -0700, Darrick J. Wong wrote:
> > +convert_delay:
> > + end_fsb = min(end_fsb, imap.br_startoff + imap.br_blockcount);
> > + xfs_iunlock(ip, lockmode);
> > + truncate_pagecache_range(inode, offset, XFS_FSB_TO_B(mp, end_fsb));
> > + error = xfs_iomap_write_direct(ip, offset_fsb, end_fsb - offset_fsb,
> > + flags, &imap, &seq);
>
> I expected this to be a direct call to xfs_bmapi_convert_delalloc.
> What was the reason not for using that?

Same here. The fact that we even convert delalloc reservations in
xfs_iomap_write_direct is something that doesn't make much sense
given that we're punching out delalloc reservations before starting
direct I/O.