dax: refactor dax-fs into a generic provider of 'struct dax_device' instances
We want dax capable drivers to be able to publish a set of dax operations [1]. However, we do not want to further abuse block_devices to advertise these operations. Instead we will attach these operations to a dax device and add a lookup mechanism to go from block device path to a dax device. A dax capable driver like pmem or brd is responsible for registering a dax device, alongside a block device, and then a dax capable filesystem is responsible for retrieving the dax device by path name if it wants to call dax_operations. For now, we refactor the dax pseudo-fs to be a generic facility, rather than an implementation detail, of the device-dax use case. Where a "dax device" is just an inode + dax infrastructure, and "Device DAX" is a mapping service layered on top of that base 'struct dax_device'. "Filesystem DAX" is then a mapping service that layers a filesystem on top of that same base device. Filesystem DAX is associated with a block_device for now, but perhaps directly to a dax device in the future, or for new pmem-only filesystems. [1]: https://lkml.org/lkml/2017/1/19/880 Suggested-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
这个提交包含在:
@@ -28,7 +28,10 @@ obj-$(CONFIG_ND_BTT) += nd_btt.o
|
||||
obj-$(CONFIG_ND_BLK) += nd_blk.o
|
||||
obj-$(CONFIG_X86_PMEM_LEGACY) += nd_e820.o
|
||||
obj-$(CONFIG_ACPI_NFIT) += nfit.o
|
||||
obj-$(CONFIG_DEV_DAX) += dax.o
|
||||
ifeq ($(CONFIG_DAX),m)
|
||||
obj-$(CONFIG_DAX) += dax.o
|
||||
endif
|
||||
obj-$(CONFIG_DEV_DAX) += device_dax.o
|
||||
obj-$(CONFIG_DEV_DAX_PMEM) += dax_pmem.o
|
||||
|
||||
nfit-y := $(ACPI_SRC)/core.o
|
||||
@@ -48,9 +51,12 @@ nd_blk-y += config_check.o
|
||||
nd_e820-y := $(NVDIMM_SRC)/e820.o
|
||||
nd_e820-y += config_check.o
|
||||
|
||||
dax-y := $(DAX_SRC)/dax.o
|
||||
dax-y := $(DAX_SRC)/super.o
|
||||
dax-y += config_check.o
|
||||
|
||||
device_dax-y := $(DAX_SRC)/device.o
|
||||
device_dax-y += config_check.o
|
||||
|
||||
dax_pmem-y := $(DAX_SRC)/pmem.o
|
||||
dax_pmem-y += config_check.o
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户