summaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm/core.c
diff options
context:
space:
mode:
authorVishal Verma <vishal.l.verma@intel.com>2016-07-23 21:51:42 -0700
committerDan Williams <dan.j.williams@intel.com>2016-07-23 21:51:42 -0700
commit37b137ff8c833385b75ff2baf4bace25e52247d2 (patch)
tree7bf79dcc785820ed90a02874c4c9119e528da3c4 /drivers/nvdimm/core.c
parent18515942d61bdfd4b31ea13f9fbb9c18650c6818 (diff)
downloadlinux-37b137ff8c833385b75ff2baf4bace25e52247d2.tar.gz
linux-37b137ff8c833385b75ff2baf4bace25e52247d2.tar.bz2
linux-37b137ff8c833385b75ff2baf4bace25e52247d2.zip
nfit, libnvdimm: allow an ARS scrub to be triggered on demand
Normally, an ARS (Address Range Scrub) only happens at boot/initialization time. There can however arise situations where a bus-wide rescan is needed - notably, in the case of discovering a latent media error, we should do a full rescan to figure out what other sectors are bad, and thus potentially avoid triggering an mce on them in the future. Also provide a sysfs trigger to start a bus-wide scrub. Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/core.c')
-rw-r--r--drivers/nvdimm/core.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/nvdimm/core.c b/drivers/nvdimm/core.c
index 2c98f958fabb..715583f69d28 100644
--- a/drivers/nvdimm/core.c
+++ b/drivers/nvdimm/core.c
@@ -201,6 +201,13 @@ struct nvdimm_bus_descriptor *to_nd_desc(struct nvdimm_bus *nvdimm_bus)
}
EXPORT_SYMBOL_GPL(to_nd_desc);
+struct device *to_nvdimm_bus_dev(struct nvdimm_bus *nvdimm_bus)
+{
+ /* struct nvdimm_bus definition is private to libnvdimm */
+ return &nvdimm_bus->dev;
+}
+EXPORT_SYMBOL_GPL(to_nvdimm_bus_dev);
+
static bool is_uuid_sep(char sep)
{
if (sep == '\n' || sep == '-' || sep == ':' || sep == '\0')