On Wed, Apr 07, 2021 at 07:33:21AM +0100, Christoph Hellwig wrote: > > @@ -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. > Agreed. I noticed that when first passing through the code but didn't want to get into further functional changes. > > 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. > Fixed. > Otherwise looks good: > > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > Thanks. Brian