]> git.baikalelectronics.ru Git - kernel.git/commit
libnvdimm, pfn: during init, clear errors in the metadata area
authorVishal Verma <vishal.l.verma@intel.com>
Tue, 18 Sep 2018 23:48:31 +0000 (17:48 -0600)
committerDan Williams <dan.j.williams@intel.com>
Fri, 28 Sep 2018 18:06:56 +0000 (11:06 -0700)
commit78259c6435372eb1335041e89258287bb07c7e83
tree1a4f7d35e1ff62d8cf1a62ff3b95b9890577d319
parent51c2de33f1d7d3211b46abc07628acbd3e75e28d
libnvdimm, pfn: during init, clear errors in the metadata area

If there are badblocks present in the 'struct page' area for pfn
namespaces, until now, the only way to clear them has been to force the
namespace into raw mode, clear the errors, and re-enable the fsdax mode.
This is clunky, given that it should be easy enough for the pfn driver
to do the same.

Add a new helper that uses the most recently available badblocks list to
check whether there are any badblocks that lie in the volatile struct
page area. If so, before initializing the struct pages, send down
targeted writes via nvdimm_write_bytes to write zeroes to the affected
blocks, and thus clear errors.

Cc: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/pfn_devs.c