|
@@ -885,9 +885,7 @@ EXPORT_SYMBOL_GPL(dm_table_set_type);
|
|
|
static int device_supports_dax(struct dm_target *ti, struct dm_dev *dev,
|
|
|
sector_t start, sector_t len, void *data)
|
|
|
{
|
|
|
- struct request_queue *q = bdev_get_queue(dev->bdev);
|
|
|
-
|
|
|
- return q && blk_queue_dax(q);
|
|
|
+ return bdev_dax_supported(dev->bdev, PAGE_SIZE);
|
|
|
}
|
|
|
|
|
|
static bool dm_table_supports_dax(struct dm_table *t)
|
|
@@ -1907,6 +1905,9 @@ void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q,
|
|
|
|
|
|
if (dm_table_supports_dax(t))
|
|
|
blk_queue_flag_set(QUEUE_FLAG_DAX, q);
|
|
|
+ else
|
|
|
+ blk_queue_flag_clear(QUEUE_FLAG_DAX, q);
|
|
|
+
|
|
|
if (dm_table_supports_dax_write_cache(t))
|
|
|
dax_write_cache(t->md->dax_dev, true);
|
|
|
|