On Sun, Jun 18, 2017 at 1:37 AM, Christoph Hellwig <hch@xxxxxx> wrote: >> +size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr, >> + size_t bytes, struct iov_iter *i) >> +{ >> + if (!dax_alive(dax_dev)) >> + return 0; >> + >> + if (!dax_dev->ops->copy_from_iter) >> + return copy_from_iter(addr, bytes, i); >> + return dax_dev->ops->copy_from_iter(dax_dev, pgoff, addr, bytes, i); >> +} >> +EXPORT_SYMBOL_GPL(dax_copy_from_iter); > > Can you remove the fallbacks after this series so that we have > a clean abstraction? You mean update all implementations to register copy_from_iter() as their default op rather than workaround a NULL op in the core? Yeah, I can do that.