On Thu, Sep 16, 2021 at 04:49:19PM +0800, Shiyang Ruan wrote: > > > On 2021/9/16 14:16, Christoph Hellwig wrote: > > On Wed, Sep 15, 2021 at 06:44:58PM +0800, Shiyang Ruan wrote: > > > + rc = dax_direct_access(iomap->dax_dev, pgoff, 1, &kaddr, NULL); > > > + if (rc < 0) > > > + goto out; > > > + memset(kaddr + offset, 0, size); > > > + if (srcmap->addr != IOMAP_HOLE && srcmap->addr != iomap->addr) { > > > > Should we also check that ->dax_dev for iomap and srcmap are different > > first to deal with case of file system with multiple devices? > > I have not thought of this case. Isn't it possible to CoW between different > devices? There's nothing in the iomap API that prevents a filesystem from doing that, though there are no filesystems today that do such a thing. That said, if btrfs ever joins the fold (and adds DAX support) then they could totally COW to a different device. --D > > > -- > Thanks, > Ruan > > > > > Otherwise looks good: > > > > Reviewed-by: Christoph Hellwig <hch@xxxxxx> > > > >