> @@ -182,12 +155,10 @@ xfs_end_ioend( > error = xfs_reflink_end_cow(ip, offset, size); > else if (ioend->io_type == IOMAP_UNWRITTEN) > error = xfs_iomap_write_unwritten(ip, offset, size, false); > - else > - ASSERT(!xfs_ioend_is_append(ioend) || ioend->io_private); I first though we'd now call xfs_setfilesize for unwritten extents as well, but as those have already updated di_size we are fine here. As a future enhancement it would be useful to let xfs_reflink_end_cow update the file size similar to what we do for the unwritten case. > done: > - if (ioend->io_private) > - error = xfs_setfilesize_ioend(ioend, error); > + if (!error && xfs_ioend_is_append(ioend)) > + error = xfs_setfilesize(ip, ioend->io_offset, ioend->io_size); > iomap_finish_ioends(ioend, error); The done label can move after the call to xfs_setfilesize now. Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>