diff options
author | Dan Williams <dan.j.williams@intel.com> | 2015-06-17 17:14:46 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2015-06-24 21:24:10 -0400 |
commit | bf9bccc14c05dae8caba29df6187c731710f5380 (patch) | |
tree | cbf00a172bc70598748231748ca2ad14867063ad /include/linux/libnvdimm.h | |
parent | 4a826c83db4edc040da3a66dbefd53f0cfcf457d (diff) |
libnvdimm: pmem label sets and namespace instantiation.
A complete label set is a PMEM-label per-dimm per-interleave-set where
all the UUIDs match and the interleave set cookie matches the hosting
interleave set.
Present sysfs attributes for manipulation of a PMEM-namespace's
'alt_name', 'uuid', and 'size' attributes. A later patch will make
these settings persistent by writing back the label.
Note that PMEM allocations grow forwards from the start of an interleave
set (lowest dimm-physical-address (DPA)). BLK-namespaces that alias
with a PMEM interleave set will grow allocations backward from the
highest DPA.
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Neil Brown <neilb@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'include/linux/libnvdimm.h')
-rw-r--r-- | include/linux/libnvdimm.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/libnvdimm.h b/include/linux/libnvdimm.h index 1b627b109360..c130972e08c4 100644 --- a/include/linux/libnvdimm.h +++ b/include/linux/libnvdimm.h | |||
@@ -41,10 +41,20 @@ typedef int (*ndctl_fn)(struct nvdimm_bus_descriptor *nd_desc, | |||
41 | struct nvdimm *nvdimm, unsigned int cmd, void *buf, | 41 | struct nvdimm *nvdimm, unsigned int cmd, void *buf, |
42 | unsigned int buf_len); | 42 | unsigned int buf_len); |
43 | 43 | ||
44 | struct nd_namespace_label; | ||
45 | struct nvdimm_drvdata; | ||
44 | struct nd_mapping { | 46 | struct nd_mapping { |
45 | struct nvdimm *nvdimm; | 47 | struct nvdimm *nvdimm; |
48 | struct nd_namespace_label **labels; | ||
46 | u64 start; | 49 | u64 start; |
47 | u64 size; | 50 | u64 size; |
51 | /* | ||
52 | * @ndd is for private use at region enable / disable time for | ||
53 | * get_ndd() + put_ndd(), all other nd_mapping to ndd | ||
54 | * conversions use to_ndd() which respects enabled state of the | ||
55 | * nvdimm. | ||
56 | */ | ||
57 | struct nvdimm_drvdata *ndd; | ||
48 | }; | 58 | }; |
49 | 59 | ||
50 | struct nvdimm_bus_descriptor { | 60 | struct nvdimm_bus_descriptor { |