Re: [PATCH 2/2] libnvdimm: clear region badblock in nvdimm_clear_poison()

From: Dan Williams
Date: Fri Apr 28 2017 - 20:12:45 EST


On Fri, Apr 28, 2017 at 5:10 PM, Dan Williams <dan.j.williams@xxxxxxxxx> wrote:
> On Thu, Apr 27, 2017 at 3:57 PM, Toshi Kani <toshi.kani@xxxxxxx> wrote:
>> Badblocks are tracked at both region and device levels.
>> pmem_clear_poison() and nsio_rw_bytes() call nvdimm_clear_poison()
>> and then badblocks_clear() to clear badblocks at the device level.
>> However, it does not update badblocks at the region level, which
>> makes them inconsistent.
>>
>> Change nvdimm_clear_poison() to update backblocks at the region
>> level to keep them consistent.
>>
>> Signed-off-by: Toshi Kani <toshi.kani@xxxxxxx>
>> Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
>> Cc: Dave Jiang <dave.jiang@xxxxxxxxx>
>> Cc: Vishal Verma <vishal.l.verma@xxxxxxxxx>
>
> This looks good, and it seems we have a bug in the other location that
> does this in __nd_ioctl(). That other one is missing the
> "clear_err.cleared / 512" check. Can you respin this and define a
> common helper that both locations can call?

On second thought, I'll take this and spin my own cleanup / fix on top.

Thanks Toshi!