> +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?