On Mon, 2017-05-08 at 10:00 -0700, Dan Williams wrote:
On Wed, Apr 26, 2017 at 3:43 PM, Vishal Verma
> If we had badblocks/poison in the metadata area of a BTT,
> recreating the
> BTT would not clear the poison in all cases, notably the flog area.
> is because rw_bytes will only clear errors if the request being
> down is 512B aligned and sized.
> Make sure that when writing the map and info blocks, the rw_bytes
> sent are of the correct size/alignment. For the flog, instead of
> the smaller log_entry writes only, first do a 'wipe' of the entire
> by writing zeroes in large enough chunks so that errors get
These eventually nsio_rw_bytes() while the namespace is claimed by a
btt instance, so this collides with the hack to disable error
for btt. If we want to fix this up for 4.12 I think we need to pass a
'flags' parameter to the ->rw_bytes() routine to indicate that we are
in atomic context (NVDIMM_IO_ATOMIC), rather than assuming that all
BTT I/O is atomic. Care to code that up? I think we can include it in
a pull request before the merge window closes.
Ah good point. You mean a flag to say that we're in process context
right?We want to skip the clearing in atomic context..