OpenCloudOS-Kernel/drivers/nvdimm
Dan Williams 4a826c83db libnvdimm: namespace indices: read and validate
This on media label format [1] consists of two index blocks followed by
an array of labels.  None of these structures are ever updated in place.
A sequence number tracks the current active index and the next one to
write, while labels are written to free slots.

    +------------+
    |            |
    |  nsindex0  |
    |            |
    +------------+
    |            |
    |  nsindex1  |
    |            |
    +------------+
    |   label0   |
    +------------+
    |   label1   |
    +------------+
    |            |
     ....nslot...
    |            |
    +------------+
    |   labelN   |
    +------------+

After reading valid labels, store the dpa ranges they claim into
per-dimm resource trees.

[1]: http://pmem.io/documents/NVDIMM_Namespace_Spec.pdf

Cc: Neil Brown <neilb@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2015-06-24 21:24:10 -04:00
..
Kconfig libnvdimm, pmem: move pmem to drivers/nvdimm/ 2015-06-24 21:24:10 -04:00
Makefile libnvdimm: namespace indices: read and validate 2015-06-24 21:24:10 -04:00
bus.c libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
core.c libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
dimm.c libnvdimm: namespace indices: read and validate 2015-06-24 21:24:10 -04:00
dimm_devs.c libnvdimm: namespace indices: read and validate 2015-06-24 21:24:10 -04:00
label.c libnvdimm: namespace indices: read and validate 2015-06-24 21:24:10 -04:00
label.h libnvdimm: namespace indices: read and validate 2015-06-24 21:24:10 -04:00
namespace_devs.c libnvdimm: support for legacy (non-aliasing) nvdimms 2015-06-24 21:24:10 -04:00
nd-core.h libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00
nd.h libnvdimm: namespace indices: read and validate 2015-06-24 21:24:10 -04:00
pmem.c libnvdimm, pmem: add libnvdimm support to the pmem driver 2015-06-24 21:24:10 -04:00
region.c libnvdimm: support for legacy (non-aliasing) nvdimms 2015-06-24 21:24:10 -04:00
region_devs.c libnvdimm, nfit: add interleave-set state-tracking infrastructure 2015-06-24 21:24:10 -04:00