• Vishal Verma's avatar
    libnvdimm, btt: ensure that initializing metadata clears poison · b177fe85
    Vishal Verma authored
    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. This
    is because rw_bytes will only clear errors if the request being sent
    down is 512B aligned and sized.
    
    Make sure that when writing the map and info blocks, the rw_bytes being
    sent are of the correct size/alignment. For the flog, instead of doing
    the smaller log_entry writes only, first do a 'wipe' of the entire area
    by writing zeroes in large enough chunks so that errors get cleared.
    
    Cc: Andy Rudoff <andy.rudoff@intel.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: default avatarVishal Verma <vishal.l.verma@intel.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    b177fe85
btt.c 35.9 KB