• Dan Williams's avatar
    libnvdimm, region, pmem: fix 'badblocks' sysfs_get_dirent() reference lifetime · 6aa734a2
    Dan Williams authored
    We need to hold a reference on the 'dirent' until we are sure there are
    no more notifications that will be sent. As noted in the new comments we
    take advantage of the fact that the references are taken and dropped
    under device_lock() and that nd_device_notify() holds device_lock() over
    new badblocks notifications. The notifications that happen when
    badblocks are cleared only occur while the device is active.
    
    Also take the opportunity to fix up the error messages to report the
    user visible effect of a sysfs_get_dirent() failure.
    
    Fixes: 975750a9 ("libnvdimm, pmem: Add sysfs notifications to badblocks")
    Cc: Toshi Kani <toshi.kani@hpe.com>
    Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
    6aa734a2
pmem.c 13.1 KB