libnvdimm: infrastructure for btt devices
authorDan Williams <dan.j.williams@intel.com>
Thu, 25 Jun 2015 08:20:04 +0000 (04:20 -0400)
committerDan Williams <dan.j.williams@intel.com>
Thu, 25 Jun 2015 08:20:04 +0000 (04:20 -0400)
commit8c2f7e8658df1d3b7cbfa62706941d14c715823a
treeac93512841113f4d1d7a38d788ec73bb21e2d605
parent0ba1c634892b3590779803a701bcb82e8c32cc7a
libnvdimm: infrastructure for btt devices

NVDIMM namespaces, in addition to accepting "struct bio" based requests,
also have the capability to perform byte-aligned accesses.  By default
only the bio/block interface is used.  However, if another driver can
make effective use of the byte-aligned capability it can claim namespace
interface and use the byte-aligned ->rw_bytes() interface.

The BTT driver is the initial first consumer of this mechanism to allow
adding atomic sector update semantics to a pmem or blk namespace.  This
patch is the sysfs infrastructure to allow configuring a BTT instance
for a namespace.  Enabling that BTT and performing i/o is in a
subsequent patch.

Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
13 files changed:
drivers/nvdimm/Kconfig
drivers/nvdimm/Makefile
drivers/nvdimm/btt.h [new file with mode: 0644]
drivers/nvdimm/btt_devs.c [new file with mode: 0644]
drivers/nvdimm/bus.c
drivers/nvdimm/label.c
drivers/nvdimm/namespace_devs.c
drivers/nvdimm/nd-core.h
drivers/nvdimm/nd.h
drivers/nvdimm/pmem.c
drivers/nvdimm/region.c
drivers/nvdimm/region_devs.c
include/linux/nd.h