summaryrefslogtreecommitdiffstats
path: root/drivers/dax
diff options
context:
space:
mode:
authorVivek Goyal <vgoyal@redhat.com>2017-07-26 09:35:09 -0400
committerMike Snitzer <snitzer@redhat.com>2017-07-26 15:55:44 -0400
commit273752c9ff03eb83856601b2a3458218bb949e46 (patch)
tree2248ae6002c2deed099fcc0657c8665c2015d949 /drivers/dax
parent34c96507e8f6be497c15497be05f489fb34c5880 (diff)
downloadlinux-273752c9ff03eb83856601b2a3458218bb949e46.tar.gz
linux-273752c9ff03eb83856601b2a3458218bb949e46.tar.bz2
linux-273752c9ff03eb83856601b2a3458218bb949e46.zip
dm, dax: Make sure dm_dax_flush() is called if device supports it
Currently dm_dax_flush() is not being called, even if underlying dax device supports write cache, because DAXDEV_WRITE_CACHE is not being propagated up to the DM dax device. If the underlying dax device supports write cache, set DAXDEV_WRITE_CACHE on the DM dax device. This will cause dm_dax_flush() to be called. Fixes: abebfbe2f7 ("dm: add ->flush() dax operation support") Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Acked-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/dax')
-rw-r--r--drivers/dax/super.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/dax/super.c b/drivers/dax/super.c
index ce9e563e6e1d..938eb4868f7f 100644
--- a/drivers/dax/super.c
+++ b/drivers/dax/super.c
@@ -278,6 +278,12 @@ void dax_write_cache(struct dax_device *dax_dev, bool wc)
}
EXPORT_SYMBOL_GPL(dax_write_cache);
+bool dax_write_cache_enabled(struct dax_device *dax_dev)
+{
+ return test_bit(DAXDEV_WRITE_CACHE, &dax_dev->flags);
+}
+EXPORT_SYMBOL_GPL(dax_write_cache_enabled);
+
bool dax_alive(struct dax_device *dax_dev)
{
lockdep_assert_held(&dax_srcu);