On Fri, Apr 15, 2016 at 11:06 AM, Jeff Moyer <jmo...@redhat.com> wrote: > Dan Williams <dan.j.willi...@intel.com> writes: > >>>> There's a lot of special casing here, so you might consider adding >>>> comments. >>> >>> 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.