提交 5d2a228b 编写于 作者: C Christoph Hellwig 提交者: Dan Williams

dm: make the DAX support depend on CONFIG_FS_DAX

The device mapper DAX support is all hanging off a block device and thus
can't be used with device dax.  Make it depend on CONFIG_FS_DAX instead
of CONFIG_DAX_DRIVER.  This also means that bdev_dax_pgoff only needs to
be built under CONFIG_FS_DAX now.
Signed-off-by: NChristoph Hellwig <hch@lst.de>
Acked-by: NMike Snitzer <snitzer@redhat.com>
Link: https://lore.kernel.org/r/20211129102203.2243509-3-hch@lst.deSigned-off-by: NDan Williams <dan.j.williams@intel.com>
上级 d7519392
...@@ -63,7 +63,7 @@ static int dax_host_hash(const char *host) ...@@ -63,7 +63,7 @@ static int dax_host_hash(const char *host)
return hashlen_hash(hashlen_string("DAX", host)) % DAX_HASH_SIZE; return hashlen_hash(hashlen_string("DAX", host)) % DAX_HASH_SIZE;
} }
#ifdef CONFIG_BLOCK #if defined(CONFIG_BLOCK) && defined(CONFIG_FS_DAX)
#include <linux/blkdev.h> #include <linux/blkdev.h>
int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size, int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
...@@ -80,7 +80,6 @@ int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size, ...@@ -80,7 +80,6 @@ int bdev_dax_pgoff(struct block_device *bdev, sector_t sector, size_t size,
} }
EXPORT_SYMBOL(bdev_dax_pgoff); EXPORT_SYMBOL(bdev_dax_pgoff);
#if IS_ENABLED(CONFIG_FS_DAX)
/** /**
* dax_get_by_host() - temporary lookup mechanism for filesystem-dax * dax_get_by_host() - temporary lookup mechanism for filesystem-dax
* @host: alternate name for the device registered by a dax driver * @host: alternate name for the device registered by a dax driver
...@@ -219,8 +218,7 @@ bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev, ...@@ -219,8 +218,7 @@ bool dax_supported(struct dax_device *dax_dev, struct block_device *bdev,
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(dax_supported); EXPORT_SYMBOL_GPL(dax_supported);
#endif /* CONFIG_FS_DAX */ #endif /* CONFIG_BLOCK && CONFIG_FS_DAX */
#endif /* CONFIG_BLOCK */
enum dax_device_flags { enum dax_device_flags {
/* !alive + rcu grace period == no new operations / mappings */ /* !alive + rcu grace period == no new operations / mappings */
......
...@@ -162,7 +162,7 @@ static int linear_iterate_devices(struct dm_target *ti, ...@@ -162,7 +162,7 @@ static int linear_iterate_devices(struct dm_target *ti,
return fn(ti, lc->dev, lc->start, ti->len, data); return fn(ti, lc->dev, lc->start, ti->len, data);
} }
#if IS_ENABLED(CONFIG_DAX_DRIVER) #if IS_ENABLED(CONFIG_FS_DAX)
static long linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff, static long linear_dax_direct_access(struct dm_target *ti, pgoff_t pgoff,
long nr_pages, void **kaddr, pfn_t *pfn) long nr_pages, void **kaddr, pfn_t *pfn)
{ {
......
...@@ -901,7 +901,7 @@ static void log_writes_io_hints(struct dm_target *ti, struct queue_limits *limit ...@@ -901,7 +901,7 @@ static void log_writes_io_hints(struct dm_target *ti, struct queue_limits *limit
limits->io_min = limits->physical_block_size; limits->io_min = limits->physical_block_size;
} }
#if IS_ENABLED(CONFIG_DAX_DRIVER) #if IS_ENABLED(CONFIG_FS_DAX)
static int log_dax(struct log_writes_c *lc, sector_t sector, size_t bytes, static int log_dax(struct log_writes_c *lc, sector_t sector, size_t bytes,
struct iov_iter *i) struct iov_iter *i)
{ {
......
...@@ -300,7 +300,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio) ...@@ -300,7 +300,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio)
return DM_MAPIO_REMAPPED; return DM_MAPIO_REMAPPED;
} }
#if IS_ENABLED(CONFIG_DAX_DRIVER) #if IS_ENABLED(CONFIG_FS_DAX)
static long stripe_dax_direct_access(struct dm_target *ti, pgoff_t pgoff, static long stripe_dax_direct_access(struct dm_target *ti, pgoff_t pgoff,
long nr_pages, void **kaddr, pfn_t *pfn) long nr_pages, void **kaddr, pfn_t *pfn)
{ {
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
#define BITMAP_GRANULARITY PAGE_SIZE #define BITMAP_GRANULARITY PAGE_SIZE
#endif #endif
#if IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API) && IS_ENABLED(CONFIG_DAX_DRIVER) #if IS_ENABLED(CONFIG_ARCH_HAS_PMEM_API) && IS_ENABLED(CONFIG_FS_DAX)
#define DM_WRITECACHE_HAS_PMEM #define DM_WRITECACHE_HAS_PMEM
#endif #endif
......
...@@ -1783,7 +1783,7 @@ static struct mapped_device *alloc_dev(int minor) ...@@ -1783,7 +1783,7 @@ static struct mapped_device *alloc_dev(int minor)
md->disk->private_data = md; md->disk->private_data = md;
sprintf(md->disk->disk_name, "dm-%d", minor); sprintf(md->disk->disk_name, "dm-%d", minor);
if (IS_ENABLED(CONFIG_DAX_DRIVER)) { if (IS_ENABLED(CONFIG_FS_DAX)) {
md->dax_dev = alloc_dax(md, md->disk->disk_name, md->dax_dev = alloc_dax(md, md->disk->disk_name,
&dm_dax_ops, 0); &dm_dax_ops, 0);
if (IS_ERR(md->dax_dev)) { if (IS_ERR(md->dax_dev)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册