dm: make the DAX support depend on CONFIG_FS_DAX
authorChristoph Hellwig <hch@lst.de>
Mon, 29 Nov 2021 10:21:36 +0000 (11:21 +0100)
committerDan Williams <dan.j.williams@intel.com>
Sat, 4 Dec 2021 16:58:50 +0000 (08:58 -0800)
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: Christoph Hellwig <hch@lst.de>
Acked-by: Mike Snitzer <snitzer@redhat.com>
Link: https://lore.kernel.org/r/20211129102203.2243509-3-hch@lst.de
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/dax/super.c
drivers/md/dm-linear.c
drivers/md/dm-log-writes.c
drivers/md/dm-stripe.c
drivers/md/dm-writecache.c
drivers/md/dm.c

index b882cf8106ea3c4791a424c703f9acd01ddfb3b6..e20d0cef10a18fa6daa3012ad6b4e242fae7a162 100644 (file)
@@ -63,7 +63,7 @@ static int dax_host_hash(const char *host)
        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>
 
 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);
 
-#if IS_ENABLED(CONFIG_FS_DAX)
 /**
  * dax_get_by_host() - temporary lookup mechanism for filesystem-dax
  * @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,
        return ret;
 }
 EXPORT_SYMBOL_GPL(dax_supported);
-#endif /* CONFIG_FS_DAX */
-#endif /* CONFIG_BLOCK */
+#endif /* CONFIG_BLOCK && CONFIG_FS_DAX */
 
 enum dax_device_flags {
        /* !alive + rcu grace period == no new operations / mappings */
index 66ba16713f696dde918157fd8775a644d8df05bc..0a260c35aeeede053caa0a5b2295116953d57eda 100644 (file)
@@ -162,7 +162,7 @@ static int linear_iterate_devices(struct dm_target *ti,
        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,
                long nr_pages, void **kaddr, pfn_t *pfn)
 {
index 0b3ef977ceeba1f4c8f15de253426bc55aefc7e0..3155875d4e5b076c2b6d640a8b3499853169aa5a 100644 (file)
@@ -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;
 }
 
-#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,
                   struct iov_iter *i)
 {
index 6660b6b53d5bf4aa5c833549f96d6e18485598af..f084607220293b96f876f0d95c57595902494d81 100644 (file)
@@ -300,7 +300,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio)
        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,
                long nr_pages, void **kaddr, pfn_t *pfn)
 {
index 4b8991cde223d5b3eac6e70afd140398fad20641..4f31591d2d25e64d0b6a3a7fe97de6be626a0d54 100644 (file)
@@ -38,7 +38,7 @@
 #define BITMAP_GRANULARITY     PAGE_SIZE
 #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
 #endif
 
index acc84dc1bded5e3b1a28cc54025023ad55ff174b..b93fcc91176e5e1596fdcf6a2486277cfbb5ae9e 100644 (file)
@@ -1783,7 +1783,7 @@ static struct mapped_device *alloc_dev(int minor)
        md->disk->private_data = md;
        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,
                                        &dm_dax_ops, 0);
                if (IS_ERR(md->dax_dev)) {