libnvdimm, namespace: enable allocation of multiple pmem namespaces
authorDan Williams <dan.j.williams@intel.com>
Tue, 4 Oct 2016 23:09:59 +0000 (16:09 -0700)
committerDan Williams <dan.j.williams@intel.com>
Fri, 7 Oct 2016 16:22:53 +0000 (09:22 -0700)
commit762d067dbad5f32560cb1657b7ca20034332dc56
tree2d8b4300b38d277dfff626a067d44b1c3cf832b0
parent16660eaea0ccc6d0692f173922cd365876eb288e
libnvdimm, namespace: enable allocation of multiple pmem namespaces

Now that we have nd_region_available_dpa() able to handle the presence
of multiple PMEM allocations in aliased PMEM regions, reuse that same
infrastructure to track allocations from free space.  In particular
handle allocating from an aliased PMEM region in the case where there
are dis-contiguous holes.  The allocation for BLK and PMEM are
documented in the space_valid() helper:

    BLK-space is valid as long as it does not precede a PMEM
    allocation in a given region. PMEM-space must be contiguous
    and adjacent to an existing existing allocation (if one
    exists).

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/dimm_devs.c
drivers/nvdimm/namespace_devs.c
drivers/nvdimm/nd-core.h