libnvdimm/region: Rewrite _probe_success() to _advance_seeds()
The nd_region_probe_success() helper collides seed management with nvdimm->busy tracking. Given the 'busy' increment is handled internal to the nd_region driver 'probe' path move the decrement to the 'remove' path. With that cleanup the routine can be renamed to the more descriptive nd_region_advance_seeds(). The change is prompted by an incoming need to optionally advance the seeds on other events besides 'probe' success. Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Link: https://lore.kernel.org/r/20190905154603.10349-2-aneesh.kumar@linux.ibm.com Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
@@ -95,10 +95,8 @@ static int nvdimm_bus_probe(struct device *dev)
|
||||
rc = nd_drv->probe(dev);
|
||||
debug_nvdimm_unlock(dev);
|
||||
|
||||
if (rc == 0)
|
||||
nd_region_probe_success(nvdimm_bus, dev);
|
||||
else
|
||||
nd_region_disable(nvdimm_bus, dev);
|
||||
if (rc == 0 && dev->parent && is_nd_region(dev->parent))
|
||||
nd_region_advance_seeds(to_nd_region(dev->parent), dev);
|
||||
nvdimm_bus_probe_end(nvdimm_bus);
|
||||
|
||||
dev_dbg(&nvdimm_bus->dev, "END: %s.probe(%s) = %d\n", dev->driver->name,
|
||||
@@ -121,7 +119,6 @@ static int nvdimm_bus_remove(struct device *dev)
|
||||
rc = nd_drv->remove(dev);
|
||||
debug_nvdimm_unlock(dev);
|
||||
}
|
||||
nd_region_disable(nvdimm_bus, dev);
|
||||
|
||||
dev_dbg(&nvdimm_bus->dev, "%s.remove(%s) = %d\n", dev->driver->name,
|
||||
dev_name(dev), rc);
|
||||
|
Reference in New Issue
Block a user