Re: [PATCH v9 5/8] fsdax: Add dax_iomap_cow_copy() for dax_iomap_zero
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, , 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 > > > >
Re: [PATCH v9 5/8] fsdax: Add dax_iomap_cow_copy() for dax_iomap_zero
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, , 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? -- Thanks, Ruan Otherwise looks good: Reviewed-by: Christoph Hellwig
Re: [PATCH v9 5/8] fsdax: Add dax_iomap_cow_copy() for dax_iomap_zero
On Wed, Sep 15, 2021 at 06:44:58PM +0800, Shiyang Ruan wrote: > + rc = dax_direct_access(iomap->dax_dev, pgoff, 1, , 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? Otherwise looks good: Reviewed-by: Christoph Hellwig