Re: [PATCH v2 09/10] fs/xfs: Handle CoW for fsdax write() path

From: ruansy.fnst@xxxxxxxxxxx
Date: Wed Mar 03 2021 - 20:46:14 EST


> On Wed, Mar 03, 2021 at 09:57:48AM +0000, ruansy.fnst@xxxxxxxxxxx wrote:
> > > What is the advantage of the ioemap_end handler here? It adds another
> > > indirect funtion call to the fast path, so if we can avoid it, I'd
> > > rather do that.
> >
> > These code were in xfs_file_dax_write(). I moved them into the iomap_end
> > because the mmaped CoW need this.
> >
> > I know this is not so good, but I could not find another better way. Do you
> > have any ideas?
> mmaped copy is the copy_edge case? Maybe just use different iomap_ops for
> that case vs plain write?

No, I mean mmaped CoW need a xfs_reflink_end_cow() to make sure the new extent
will be correctly remaped to the file. Otherwise, the file will still refer to
the extent that srcmap point to.

We are able to call this in xfs_file_dax_write(), but cannot call it anywhere
except iomap_end in mmap path.


--
Thanks,
Ruan Shiyang.