On Fri, Apr 15, 2016 at 11:06 AM, Jeff Moyer <jmoyer(a)redhat.com> wrote:
Dan Williams <dan.j.williams(a)intel.com> writes:
>>> There's a lot of special casing here, so you might consider adding
>> Correct - maybe we should reconsider wrapper-izing this? :)
> Another option is just to skip dax_do_io() and this special casing
> fallback entirely if errors are present. I.e. only attempt dax_do_io
> when: IS_DAX() && gendisk->bb && bb->count == 0.
So, if there's an error anywhere on the device, penalize all I/O (not
just writes, and not just on sectors that are bad)? I'm not sure that's
a great plan, either.
If errors are rare how much are we actually losing in practice?
Moreover, we're going to do the full badblocks lookup anyway when we
call ->direct_access(). If we had that information earlier we can
avoid this fallback dance.