dax, pmem: introduce an optional 'flush' dax_operation
authorDan Williams <dan.j.williams@intel.com>
Mon, 29 May 2017 19:58:19 +0000 (12:58 -0700)
committerDan Williams <dan.j.williams@intel.com>
Thu, 15 Jun 2017 21:34:59 +0000 (14:34 -0700)
commit3c1cebff23cdca01c421411e953a9e239f2b9ef9
tree91fe4cc0e3526e0795c28894692ec08c3852fed0
parentfec53774fd043038e57ac737d90e8d58975d6e92
dax, pmem: introduce an optional 'flush' dax_operation

Filesystem-DAX flushes caches whenever it writes to the address returned
through dax_direct_access() and when writing back dirty radix entries.
That flushing is only required in the pmem case, so add a dax operation
to allow pmem to take this extra action, but skip it for other dax
capable devices that do not provide a flush routine.

An example for this differentiation might be a volatile ram disk where
there is no expectation of persistence. In fact the pmem driver itself might
front such an address range specified by the NFIT. So, this "no flush"
property might be something passed down by the bus / libnvdimm.

Cc: Christoph Hellwig <hch@lst.de>
Cc: Matthew Wilcox <mawilcox@microsoft.com>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/nvdimm/pmem.c
include/linux/dax.h