From: Christoph Hellwig [mailto:[email protected]]
> Either way we need to get rid of buffer_heads, and another aop that is
> entirely
> caller specific is unaceptable.
I finally figured out what you actually meant by this. You mean that instead
of having an aop->populate_pfn, you want to define a populate_pfn_t callback
and pass it in.
Something like this:
int ext2_populate_pfn(struct address_space *mapping, pgoff_t pgoff)
{
struct iomap iomap;
...
return dax_populate_pfn(mapping, pgoff, &iomap);
}
int ext2_dax_fault(vma, vmf)
{
...
ret = dax_fault(vma, vmf, ext2_populate_pfn);
...
}
I don't have a problem with that. I'll work up something along those lines
next week.